Получить вызывающую тему - PullRequest
       8

Получить вызывающую тему

2 голосов
/ 08 февраля 2010

Есть ли способ получить информацию о главном потоке (потоке приложения) из второго потока?

Моя проблема в том, что мне нужно установить currentprincipal в основном потоке, но аутентификация выполняется в другом потоке, потому что это длинная и сложная задача, но когда я устанавливаю currentPrincipal во втором потоке, основной поток не есть информация.

Спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 08 февраля 2010

Создайте статическую переменную в модуле, внутри которой будут выполняться оба потока. Установите переменную в главном потоке и получите доступ к ней во втором.

0 голосов
/ 04 августа 2013

Я написал тестовый метод ThreadJoinTest (). Запустите его в основном.

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...