我仍然學習一些關於線程。我有一個經理類,它有一些基本的業務代碼,可以調用某些類的方法併爲視圖做好準備。這些方法轉到我在創建新線程時實例化的管理器類。當我嘗試調用類方法時,它會拋出一個空指針,即使我知道它是在其自己的線程中工作。線程類實例化,使用它時的空指針,C#
我假設正在發生的事情是當前嘗試調用方法的線程無法訪問新線程化的類方法。下面是一些代碼來解釋:
public class MyClass
{
public void Test()
{
Console.WriteLine("Yay It is working");
}
}
public class Manager
{
public MyClass MyClass;
private Thread myClassThread;
public Manager()
{
myClassThread = new Thread(() => MyClass = new MyClass());
myClassThread.Start();
}
public static void Main(string[] Args)
{
var manager = new Manager().MyClass;
manager.Test();
}
}
我沒有測試,看看這個代碼編譯,所以它背後的基本思想是什麼,我想代表。即使我有權訪問在新線程中實例化的變量,我的假設是否正確,即我的當前線程無法訪問新的MyClass測試方法?我該如何解決這個問題?我應該在Test方法而不是管理器中放置一個新線程嗎?有多線程的標準嗎?