我记得很多年前(2005年),我在我的code。使用BackgroundWorker的不使用可视化组件,但我怎么也想不起(不幸的是我很健忘,很快就忘记了一切之后,我停止使用)。也许我正在伸出的BackgroundWorker类。您可以链接到使用的BackgroundWorker这样的一个很好的例子?
解决方案这文章解释了你需要的所有东西
下面是使用BackgroundWorker的最小步骤:
实例化的BackgroundWorker并处理DoWork的事件。 在通话的RunWorkerAsync,可选的对象参数。这则在运动中设置它。传递的RunWorkerAsync任何参数将被转发到DoWork的的事件处理程序,通过事件参数的参数属性。这里有一个例子:
类节目
{
静态BackgroundWorker的_bw =新的BackgroundWorker();
静态无效的主要()
{
_bw.DoWork + = bw_DoWork;
_bw.RunWorkerAsync(告工人);
到Console.ReadLine();
}
静态无效bw_DoWork(对象发件人,DoWorkEventArgs E)
{
//这就是所谓的工作线程上
Console.WriteLine(e.Argument); //写告工人
//执行耗时的任务...
}
}
I can remember that many years ago (in 2005) I was using BackgroundWorker in my code without using a visual component for it, but I can't remember how (unfortunately I am very forgetful and forget everything very soon after I stop using it). Perhaps I was extending BackgroundWorker class. Can you link to a good example of using BackgroundWorker this way?
解决方案This article explains everything you need clearly.
Here are the minimum steps in using BackgroundWorker:
Instantiate BackgroundWorker and handle the DoWork event. Call RunWorkerAsync, optionally with an object argument.This then sets it in motion. Any argument passed to RunWorkerAsync will be forwarded to DoWork’s event handler, via the event argument’s Argument property. Here’s an example:
class Program
{
static BackgroundWorker _bw = new BackgroundWorker();
static void Main()
{
_bw.DoWork += bw_DoWork;
_bw.RunWorkerAsync ("Message to worker");
Console.ReadLine();
}
static void bw_DoWork (object sender, DoWorkEventArgs e)
{
// This is called on the worker thread
Console.WriteLine (e.Argument); // writes "Message to worker"
// Perform time-consuming task...
}
}
上一篇:C#缩放用户控件的内容相匹配的用户DPI /字体大小用户、缩放、字体大小、控件
下一篇:在Windows调用IPrincipal.IsInRole 7Windows、IPrincipal、IsInRole