我在C#中创建一个应用程序,它使用winform作为GUI和一个在后台运行的独立线程自动更改东西.例如:
public void Run()
{
while(true)
{
printMessageOnGui("Hey");
Thread.Sleep(2000);
// Do more work
}
}
Run Code Online (Sandbox Code Playgroud)
如何让它在循环中的任何位置暂停,因为循环的一次迭代大约需要30秒.所以我不想在完成一个循环之后暂停它,我想按时暂停它.
我正在用C#创建一个下载程序.我正在使用WebClient类.要在按钮上暂停下载,我可以考虑使用Thread.所以当我创建线程并将其附加到我的文件下载如下
WebClient web = new WebLCient();
Thread dwnd_thread = new Thread(Program.web.DownloadFileAsync(new Uri(Program.src), Program.dest));
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:"'System.Threading.Thread.Thread(System.Threading.ThreadStart)'的最佳重载方法匹配'有一些无效的参数"和"Argument'1':无法从'void'转换为' System.Threading.ThreadStart'".
然后我想如果我暂停我的系统主线程然后它可以阻止我在下面的代码行使用的整个过程
System.Threading.Thread.Sleep(100);
Run Code Online (Sandbox Code Playgroud)
但它什么都不做.有人可以告诉我什么是更好的暂停/下载方法以及如何使用线程暂停我的下载过程.