如何在新線程中運行一小段代碼?

我有一些代碼須要在與GUI不一樣的線程中運行,由於它當前致使表單在代碼運行時凍結(10秒左右)。 spa

假設我之前從未建立過新的線程; 什麼是如何在C#中使用.NET Framework 2.0或更高版本執行此操做的簡單/基本示例? 線程


#1樓

若是你想獲得一個值: 代理

var someValue;

Thread thread = new Thread(delegate()
            {                 
                //Do somthing and set your value
                someValue = "Hello World";
            });

thread.Start();

while (thread.IsAlive)
  Application.DoEvents();

#2樓

Joe Albahari是開始閱讀的好地方。 code

若是你想建立本身的線程,這很簡單: get

using System.Threading;
new Thread(() => 
{
    Thread.CurrentThread.IsBackground = true; 
    /* run your code here */ 
    Console.WriteLine("Hello, world"); 
}).Start();

#3樓

這是另外一種選擇: string

Task.Run(()=>{
//Here is a new thread
});

#4樓

嘗試使用BackgroundWorker類。 您能夠爲代理人提供運行的內容,並在工做完成時收到通知。 我連接到的MSDN頁面上有一個示例。 it


#5樓

快速又髒,但它會起做用: io

在頂部使用: thread

using System.Threading;

簡單代碼: 表單

static void Main( string[] args )
{
    Thread t = new Thread( NewThread );
    t.Start();
}

static void NewThread()
{
    //code goes here
}

我把它扔進了一個新的控制檯應用程序中

相關文章
相關標籤/搜索