有没有办法从第二个线程获取主线程(应用程序线程)的信息?
我的问题是我必须在主线程中设置currentprincipal,但是身份验证是在另一个线程中完成的,因为这是一个漫长而复杂的任务,但是当我在第二个线程中设置currentPrincipal时,主线程不会有信息。
感谢您的帮助。
答案 0 :(得分:2)
在模块上创建一个静态变量,两个线程都将在其中执行。在主线程中设置变量并在第2个中访问它。
答案 1 :(得分:0)
我写了一个测试方法ThreadJoinTest()。在main中运行它。
public static void ThreadJoinTest()
{
// get current (calling) tread
Thread current_thread = Thread.CurrentThread;
// create a second thread
Thread second_thread = new Thread(SecondThreadFunc);
// pass calling thread to second thread
second_thread.Start(current_thread);
Console.WriteLine("Main thread: Sleep a bit...");
Thread.Sleep(1000);
Console.WriteLine("Main thread: Ended!");
}
// method executed in second thread
static void SecondThreadFunc(object t)
{
Console.WriteLine("Now in 2. thread...");
// wait calling thread to end
((Thread)t).Join();
Console.WriteLine("In 2. thread: First thread ended");
Console.WriteLine("In 2. thread: Press a key to exit!");
Console.ReadKey();
}