我正在挖掘多線程,發現一些很好的教程,但我還有一些問題。如何在第二個線程上運行整個類?
我想如何運行一個函數異步,(見這個tutorial)有四個例子來實現這一點。
但是在我開發的應用程序中,我想在一個單獨的線程中運行整個類。我在尋找這樣的事情:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace multithread_test
{
class Program
{
Program()
{ }
RunInBackground RIB;
void StartBackgroundWorker()
{
// how do I get RIB to run in the background?
RIB = new RunInBackground();
}
//somefunction to listen to the CallEventToUpdateGUI
}
//This class should run in a different thread than class Program
class RunInBackground
{
void RunInBackground()
{ }
void Function1()
{
//somefunction
}
void Function2()
{
// somefunction
}
void Function3()
{
Function1();
}
void CallEventToUpdateGUI()
{
//call a event to update gui
}
}
類不在線程中運行。方法呢。方法與其調用者(通常)在相同的線程上運行。如果'RIB'在另一個線程上「運行」,然後從'Program'內調用'RIB.Function1()',你會發生什麼? –
我希望這個函數能夠在另一個線程上運行,但可能這是愚蠢的想像那樣...... – 2pietjuh2