多线程应用程序

6 .net c# multithreading winforms

我一直在阅读MSDN上的文章,但我的思绪已经死了(这通常发生在我阅读MSDN时(没有攻击MSDN,但你的文章有时会让我感到困惑.)),我正在尝试做一些"背景工作"在我的应用程序中,但不知道如何.这只是一种方法.但应用程序挂起,我必须等待1到3分钟才能变成......没变?

是否有任何简单的例子可以在某个地方"在线",我可以看看/玩这个?

谢谢你们

Chr*_*s S 0

已经有这个不错的问题了,其中有很多比 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,而另一些人则不喜欢(我属于第二阵营)。