473,395 Members | 1,681 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

HTTP-Download (Multithreading)

Hello,

at the moment I'm not able to finish my program. That means, I have a
problem I can't solve myself. Therefore I'm asking those who already
worked with HttpWebRequest... and threads.

I'm writing some kind of download-manager, which is able to download
several files parallely. Therefore I've created a class implementing the
download function and use four threads which use four instances of the
class. This works fine, except the cancelling of downloads. After a
download-thread has been cancelled, it is not able to download any files
with this thread.

How the program works:
The source for the downloadclass I got from the .net-Documentation and
enhanced in some points.
The download form has arrays for the class-instances, boolvalues
(instance busy or not) and threads (calling StartDownload-function of
classes).
A timer (timWatchTimer) cares for the single threads. If a thread is not
busy anymore (boolvalue bThreadWorking) the next download is started for
this thread (StartNextDownload).

I removed all unnecessary code for a better overview. The sample project
can be found at:
http://vbtricks.vb.funpic.de/vbarchiv/dstest.zip.
The sample has been written using SharpDevelop, but in the subfolder VS
you find a VS-export of the project. The source does have comments but
if there any questions, please don't hesitate to ask them. I'm really up
to solve this problem as I want to finish my program.
Please help me,

Stefan
--
___________________________________www.VBTricks.de .vu
the free resource for Visual Basic, Gambas and Pascal
components, tips & complete projects

www: http://www.VBTricks.de.vu
mail: vbtricks <at> gmx <dot> net
__________________________________________________ ___
Nov 21 '05 #1
4 1721
Hi,

If you are using windows xp bits might be best way to go.

http://msdn.microsoft.com/library/de...un02282003.asp

Ken
---------------
"VBTricks.de.vu Webmaster" <no****@thisserverdoesntexist.com> wrote in
message news:uW**************@TK2MSFTNGP09.phx.gbl...
Hello,

at the moment I'm not able to finish my program. That means, I have a
problem I can't solve myself. Therefore I'm asking those who already
worked with HttpWebRequest... and threads.

I'm writing some kind of download-manager, which is able to download
several files parallely. Therefore I've created a class implementing the
download function and use four threads which use four instances of the
class. This works fine, except the cancelling of downloads. After a
download-thread has been cancelled, it is not able to download any files
with this thread.

How the program works:
The source for the downloadclass I got from the .net-Documentation and
enhanced in some points.
The download form has arrays for the class-instances, boolvalues
(instance busy or not) and threads (calling StartDownload-function of
classes).
A timer (timWatchTimer) cares for the single threads. If a thread is not
busy anymore (boolvalue bThreadWorking) the next download is started for
this thread (StartNextDownload).

I removed all unnecessary code for a better overview. The sample project
can be found at:
http://vbtricks.vb.funpic.de/vbarchiv/dstest.zip.
The sample has been written using SharpDevelop, but in the subfolder VS
you find a VS-export of the project. The source does have comments but
if there any questions, please don't hesitate to ask them. I'm really up
to solve this problem as I want to finish my program.
Please help me,

Stefan
--
___________________________________www.VBTricks.de .vu
the free resource for Visual Basic, Gambas and Pascal
components, tips & complete projects

www: http://www.VBTricks.de.vu
mail: vbtricks <at> gmx <dot> net
__________________________________________________ ___
Nov 21 '05 #2
I wonder if you shouldnt read the data sent from the web server before
closing down the connection. Like this I guess:

Dim asynchronousInputRead As IAsyncResult = _
responseStream.BeginRead(myRequestState.BufferRead , _
0, 1024, _
New AsyncCallback(AddressOf ReadCallBack), _
myRequestState)
' Now try and close
FinishedProc(StatusCodes.iErrorOccurred, _
ErrorCodes.iUserCancelled)
"VBTricks.de.vu Webmaster" <no****@thisserverdoesntexist.com> skrev i
melding news:uW**************@TK2MSFTNGP09.phx.gbl...
Hello,

at the moment I'm not able to finish my program. That means, I have a
problem I can't solve myself. Therefore I'm asking those who already
worked with HttpWebRequest... and threads.

I'm writing some kind of download-manager, which is able to download
several files parallely. Therefore I've created a class implementing the
download function and use four threads which use four instances of the
class. This works fine, except the cancelling of downloads. After a
download-thread has been cancelled, it is not able to download any files
with this thread.

How the program works:
The source for the downloadclass I got from the .net-Documentation and
enhanced in some points.
The download form has arrays for the class-instances, boolvalues (instance
busy or not) and threads (calling StartDownload-function of classes).
A timer (timWatchTimer) cares for the single threads. If a thread is not
busy anymore (boolvalue bThreadWorking) the next download is started for
this thread (StartNextDownload).

I removed all unnecessary code for a better overview. The sample project
can be found at:
http://vbtricks.vb.funpic.de/vbarchiv/dstest.zip.
The sample has been written using SharpDevelop, but in the subfolder VS
you find a VS-export of the project. The source does have comments but if
there any questions, please don't hesitate to ask them. I'm really up to
solve this problem as I want to finish my program.
Please help me,

Stefan
--
___________________________________www.VBTricks.de .vu
the free resource for Visual Basic, Gambas and Pascal
components, tips & complete projects

www: http://www.VBTricks.de.vu
mail: vbtricks <at> gmx <dot> net
__________________________________________________ ___


Nov 21 '05 #3
On 2005-07-07, VBTricks.de.vu Webmaster <no****@thisserverdoesntexist.com> wrote:
Hello,

at the moment I'm not able to finish my program. That means, I have a
problem I can't solve myself. Therefore I'm asking those who already
worked with HttpWebRequest... and threads.

I'm writing some kind of download-manager, which is able to download
several files parallely. Therefore I've created a class implementing the
download function and use four threads which use four instances of the
class. This works fine, except the cancelling of downloads. After a
download-thread has been cancelled, it is not able to download any files
with this thread.

How the program works:
The source for the downloadclass I got from the .net-Documentation and
enhanced in some points.
The download form has arrays for the class-instances, boolvalues
(instance busy or not) and threads (calling StartDownload-function of
classes).
A timer (timWatchTimer) cares for the single threads. If a thread is not
busy anymore (boolvalue bThreadWorking) the next download is started for
this thread (StartNextDownload).

I removed all unnecessary code for a better overview. The sample project
can be found at:
http://vbtricks.vb.funpic.de/vbarchiv/dstest.zip.
The sample has been written using SharpDevelop, but in the subfolder VS
you find a VS-export of the project. The source does have comments but
if there any questions, please don't hesitate to ask them. I'm really up
to solve this problem as I want to finish my program.
Please help me,

Stefan


If your on a 2K or higher system and don't need to support 9x, then I
agree with Ken - use BITS. If you don't like the wrapper in the article
he pointed out, I have one that I wrote in C# ages ago :) And, yes, the
library does work with VB.NET. In fact, when I wrote it - I wrote the
wrapper in C#, but wrote the test app in VB.NET to make sure it would
work...
Anyway, as for the threads... I haven't really looked at the code so
I'm not sure what your doing here. I just wanted to interject my support
of BITS :) I have downloaded the project, and if I get a moment, I'll
see if I can see anything that strikes me as out of place :)

--
Tom Shelton [MVP]
Nov 21 '05 #4
Hello,

sorry for replying that late. The problem could be fixed by ensuring
that the response-stream has been closed when the download is cancelled.
Stefan

--
___________________________________www.VBTricks.de .vu
the free resource for Visual Basic, Gambas and Pascal
components, tips & complete projects

www: http://www.VBTricks.de.vu
mail: vbtricks <at> gmx <dot> net
__________________________________________________ ___
Nov 21 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

7
by: Michael Foord | last post by:
#!/usr/bin/python -u # 15-09-04 # v1.0.0 # auth_example.py # A simple script manually demonstrating basic authentication. # Copyright Michael Foord # Free to use, modify and relicense. #...
8
by: turnit \(removethis\) | last post by:
I have a login form that uses the post method to carry the information to the next page. The form works just fine in ie6.0, but fails in mozilla and fails in ie5.2 on a mac. "HTTP/1.1 400 Bad...
3
by: ashesdesign | last post by:
Hi All, I am very new to php and even newer to XML. Can anyone please shed some light on how to post XML requests via HTTP. I have been searching high and low and have come across many...
5
by: David Lozzi | last post by:
Howdy, I wrote a web service in .Net for my customer. My customer has another vendor who now has to consume it but they are not using Visual Studio. Most of their pages are jsp, and they said...
4
by: Bob Badger | last post by:
Hi, Simple question (although I guess with a complicated answer). Is HTTP an async protocol? For instance, if I send a message to a c# webservice via http what is the protocol actually doing? ...
1
by: zpinhead | last post by:
I am unable to get my downloaded extension from pecl to link up with php properly. seems like the php.so I could not use pear install http. pear claimed the extension was already installed....
3
by: webEater | last post by:
Hey, I am writing a file that reads in an external file in the web and prints it out including the response header of the http protocol. I do this to enable cross domain XMLHttpRequests. I...
1
by: rpjd | last post by:
I am completely new to this so please bear with me here. My project involves a webpage executing php scripts via an xmlhttprequest which queries a database and returns data to the webpage. This code...
1
by: rpjd | last post by:
I am having a problem getting the http.status of an xmlhttprequest. The request readystate has come back as readystate 4, but then it stops without confirming the http.status. Any help appreciated....
16
by: Harry Simpson | last post by:
I've been away from ASPNET - I open up a new Web app in VS2008 and go into properties and select to use IIS instead of the personal web server. Then I run in debug mode and it says I have to set...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.