Поделиться через


Thread2.Thaw - метод

Обновлен: Ноябрь 2007

Позволяет возобновить выполнение потока.

Пространство имен:  EnvDTE90
Сборка:  EnvDTE90 (в EnvDTE90.dll)

Синтаксис

'Декларация
Sub Thaw
'Применение
Dim instance As Thread2

instance.Thaw()
void Thaw()
void Thaw()
function Thaw()

Реализации

Thread.Thaw()

Заметки

После приостановки потока этот метод можно использовать для возобновления его выполнения.

Примеры

В следующем примере показано использование метода Freeze.

Для тестирования этого метода:

  1. Установите точку останова внутри метода обратного вызова рабочего потока;

  2. Запустите целевое приложение в режиме отладки;

  3. Когда выполнение приложения прервется в точке останова, запустите надстройку.

public static void FreezeThawTest(DTE2 dte)
{
    // Setup debug Output window.
    Window w = 
      (Window)dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput);
    w.Visible = true;
    OutputWindow ow = (OutputWindow)w.Object;
    OutputWindowPane owp = ow.OutputWindowPanes.Add("Thread Freeze Thaw 
      Test");
    owp.Activate();

    EnvDTE.Threads threads = dte.Debugger.CurrentProgram.Threads;
    owp.OutputString("There are " + threads.Count + " threads:\n");
    foreach(EnvDTE90.Thread2 thread in threads)
    {
        owp.OutputString("\nThread: " + thread.ID + "  Name: " + 
          thread.Name);
        owp.OutputString("\n  Is frozen                  : " + 
          thread.IsFrozen);
        owp.OutputString("\n  Freezing . . . ");
        thread.Freeze();
        owp.OutputString("\n  Is frozen                  : " + 
          thread.IsFrozen);
        owp.OutputString("\n  Thawing . . . ");
        thread.Thaw();
        owp.OutputString("\n  Is frozen                  : " + 
          thread.IsFrozen);
    }
}
Shared Sub FreezeThawTest(ByRef dte As EnvDTE80.DTE2)
    Dim str As String
    Dim threads As EnvDTE.Threads = dte.Debugger.CurrentProgram.Threads
    str = "There are " + threads.Count.ToString() + " threads running."
    For Each thread As EnvDTE90.Thread2 In threads
        str += vbCrLf + vbCrLf + "  Thread: " + thread.ID.ToString()
        str += vbCrLf + vbCrLf + "  Is frozen: " + _
          thread.IsFrozen.ToString()
        str += vbCrLf + vbCrLf + "  Freezing ... "
        thread.Freeze()
        str += vbCrLf + vbCrLf + "  Is frozen: " + _ 
          thread.IsFrozen.ToString()
        str += vbCrLf + vbCrLf + "  Thawing ... "
        thread.Thaw()
        str += vbCrLf + vbCrLf + "  Is frozen: " + _
          thread.IsFrozen.ToString()
    Next
    MessageBox.Show(str, "Thread Freeze Thaw Test")
End Sub

Разрешения

См. также

Ссылки

Thread2 Интерфейс

Thread2 - члены

Thaw - перегрузка

EnvDTE90 - пространство имен

Другие ресурсы

Работа с потоками и процессами

Диаграмма модели объектов автоматизации

Практическое руководство. Использование окна потоков