Thread.suspend and thread.resume is obsolete

Please support our VB.NET advertiser: $4.95 a Month - ASP.NET Web Hosting – Click Here!
Thread Solved
Reply

Join Date: Jun 2009
Posts: 225
Reputation: GeekByChoiCe is on a distinguished road 
Solved Threads: 39
GeekByChoiCe GeekByChoiCe is offline Offline
Posting Whiz in Training

Thread.suspend and thread.resume is obsolete

 
0
  #1
Jun 11th, 2009
Hello

I am coding an FTP program, the downloading/uploading happens in a seperate thread. The problem is now how to pause/resume the download (even on servers that don't support file resume), an easy/working way is to pause/resume the working thread with thread.suspend but it tells me that this function is obsolete.

Is there a simmilar method to achieve this? I've tried looking up Mutexes, Monitor, Event, Semaphore stuff but that would only allow me to pause the file transfer after the file is done.

So the code that 'lives' in the thread that I want to suspend looks something like

  1. Private Sub StartUpload(ByVal allFiles As Hashtable)
  2. For Each singleFile As String In allFiles.Keys
  3. Try
  4. ftpClient.UploadFile(singleFile, allFiles.Item(singleFile), False)
  5. Catch ex As Exception
  6. ftpClient.DeleteFile(allFiles.Item(singleFile))
  7. Exit For
  8. End Try
  9. Next
  10. allFiles = Nothing
  11. End Sub
Function get called as following:
  1. UploadThread = New Threading.Thread(AddressOf StartUpload)
  2. UploadThread.Start(allFiles)

So UploadThread.suspend() / resume works perfectly, but I can't really release this if these functions get removed in future releases of .net

Any help is appreciated

GeekByChoiCe
Reply With Quote Quick reply to this message  
Join Date: Aug 2008
Posts: 83
Reputation: nmaillet is an unknown quantity at this point 
Solved Threads: 18
nmaillet nmaillet is offline Offline
Junior Poster in Training

Re: Thread.suspend and thread.resume is obsolete

 
0
  #2
Jun 11th, 2009
I don't believe that support for these methods will be removed in any future release, for backwards compatability. The reason for it being marked as obsolete is because when suspending a thread, you cannot determine where in the method the thread suspends at. Instead, you should generally use a boolean variable, and have the method check at certain points the value of the variable, and suspend the thread using a while loop or something.
Reply With Quote Quick reply to this message  
Join Date: Jun 2009
Posts: 225
Reputation: GeekByChoiCe is on a distinguished road 
Solved Threads: 39
GeekByChoiCe GeekByChoiCe is offline Offline
Posting Whiz in Training

Re: Thread.suspend and thread.resume is obsolete

 
0
  #3
Jul 5th, 2009
Almost forgot to mark it as solved d'oh

Actually after days of trying i figured out that Thread.Suspend is exactlly what i shouldn't do o.O
When i suspend the FTP Upload it works perfect for exact the time until the FTP server timeouts and disconnect. If i then want to resume my Upload it fails ofc.
Anyway it seems i still have two possibilities:
1. pausing the transfer after the current file is uploaded (if uploading multiple files)
2. saving the count of current transfered bytes and sending the resume command to the ftp server by giving the count as argument. But not all FTP server are set up to support file resume. so guess option 1 wit will be.

Problem solved.
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC