怎么一个线程用socket发送文件,做一个按钮中止发送

如何一个线程用socket发送文件,做一个按钮中止发送?
如题,我使用了一个线程进行socket文件的发送,现在我想在界面上增加一个取消发送的按钮,该怎么加呢,我自己有两个想法,第一是从socket下手,但是我这个按钮不知道怎么获得发送中的socket啊,如果使用全局变量,那么我再次发送的时候就会被阻止。另外一个想法是从线程下手,新建一个线程,那我中止这个线程的时候是不是就能中止文件的发送。求指教

------解决方案--------------------
VB.NET code

        Try
            myThread(Tzobj).Abort() '中止某个线程   '销毁这些线程,需要很多时间!!!
            myThread(Tzobj).Join(300)  '500 '(1000)  '等待1000毫秒,超时也终止’防止不出来
        Catch 'ex As Exception
        End Try