6 .net c# multithreading winforms
我一直在阅读MSDN上的文章,但我的思绪已经死了(这通常发生在我阅读MSDN时(没有攻击MSDN,但你的文章有时会让我感到困惑.)),我正在尝试做一些"背景工作"在我的应用程序中,但不知道如何.这只是一种方法.但应用程序挂起,我必须等待1到3分钟才能变成......没变?
是否有任何简单的例子可以在某个地方"在线",我可以看看/玩这个?
谢谢你们
已经有这个不错的问题了,其中有很多比 MSDN 更容易理解的文章链接。
乔恩·斯基特 (Jon Skeet) 的文章是最容易入门的,也可能是最全面的,而乔·达菲 (Joe Duffy) 的系列文章则非常深入。浏览Stackoverflow 中的C# 和多线程标签也可以给你一些很好的答案。
您可能会发现避免BackgroundWorker最快的方法,而只需使用 Invoke:
void ButtonClick(object sender,EventArgs e)
{
Thread thread = new Thread(Worker);
thread.Start();
}
void Worker()
{
if (InvokeRequired)
{
Invoke(new Action(Worker));
return;
}
MyLabel.Text = "Done item x";
}
Run Code Online (Sandbox Code Playgroud)
有些人喜欢在 Stackoverflow 上使用 BackgroundWorker,而另一些人则不喜欢(我属于第二阵营)。