我有一些代码,我需要运行在不同的线程,而不是GUI,因为它目前导致窗体冻结,而代码运行(10秒左右)。
假设我以前从未创建过一个新线程;有什么简单/基本的例子,如何做到这一点在c#和使用。net Framework 2.0或更高版本?
我有一些代码,我需要运行在不同的线程,而不是GUI,因为它目前导致窗体冻结,而代码运行(10秒左右)。
假设我以前从未创建过一个新线程;有什么简单/基本的例子,如何做到这一点在c#和使用。net Framework 2.0或更高版本?
当前回答
这是另一种选择:
Task.Run(()=>{
//Here is a new thread
});
其他回答
又快又脏,但很管用:
用于顶部:
using System.Threading;
简单的代码:
static void Main( string[] args )
{
Thread t = new Thread( NewThread );
t.Start();
}
static void NewThread()
{
//code goes here
}
我只是将其放入一个新的控制台应用程序中作为示例
乔·阿尔巴哈里是开始阅读的好地方。
如果你想创建自己的线程,这很简单:
using System.Threading;
new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
/* run your code here */
Console.WriteLine("Hello, world");
}).Start();
这是另一种选择:
Task.Run(()=>{
//Here is a new thread
});
将该代码放入一个函数中(不能与GUI在同一个线程上执行的代码),并执行以下代码来触发该代码的执行。
线程myThread=新线程(namefunction);
workerThread.Start();
在线程对象上调用start函数将导致在新线程中执行函数调用。
尝试使用BackgroundWorker类。您为它指定要运行的内容,并在工作完成时通知它。在我链接到的MSDN页面上有一个例子。