Bahasa

JoinableTaskFactory.SwitchToMainThreadAsync Metode

Definisi

Overload

Nama Deskripsi
SwitchToMainThreadAsync(CancellationToken)

Mendapatkan yang dapat ditunggu yang kelanjutannya dijalankan pada utas utama, sewaktu-waktu untuk mengurangi kebuntuan dan masuk kembali.

SwitchToMainThreadAsync(Boolean, CancellationToken)

Mendapatkan yang dapat ditunggu yang kelanjutannya dijalankan pada konteks sinkronisasi yang diinisialisasi instans ini, sewaktu-waktu untuk mengurangi kebuntuan dan masuk kembali.

SwitchToMainThreadAsync(CancellationToken)

Mendapatkan yang dapat ditunggu yang kelanjutannya dijalankan pada utas utama, sewaktu-waktu untuk mengurangi kebuntuan dan masuk kembali.

public Microsoft.VisualStudio.Threading.JoinableTaskFactory.MainThreadAwaitable SwitchToMainThreadAsync(System.Threading.CancellationToken cancellationToken = default);
member this.SwitchToMainThreadAsync : System.Threading.CancellationToken -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.MainThreadAwaitable
Public Function SwitchToMainThreadAsync (Optional cancellationToken As CancellationToken = Nothing) As JoinableTaskFactory.MainThreadAwaitable

Parameter

cancellationToken
CancellationToken

Token yang pembatalannya akan segera menjadwalkan kelanjutan pada utas threadpool dan akan menyebabkan kelanjutan untuk melemparkan OperationCanceledException, bahkan jika penelepon sudah berada di utas utama.

Mengembalikan

Sebuah yang dapat ditunggu.

Pengecualian

Dilemparkan kembali ke penelepon yang menunggu jika cancellationToken dibatalkan, bahkan jika penelepon sudah berada di utas utama.

Keterangan

private async Task SomeOperationAsync() {
    // on the caller's thread.
    await DoAsync();

    // Now switch to a threadpool thread explicitly.
    await TaskScheduler.Default;

    // Now switch to the Main thread to talk to some STA object.
    await this.JobContext.SwitchToMainThreadAsync();
    STAService.DoSomething();
}

Ketika pemilik JoinableTaskContext dibuat dengan nullSynchronizationContext, metode ini tidak berpengaruh dan pemanggil akan melanjutkan eksekusi pada utas aslinya.

Berlaku untuk

SwitchToMainThreadAsync(Boolean, CancellationToken)

Mendapatkan yang dapat ditunggu yang kelanjutannya dijalankan pada konteks sinkronisasi yang diinisialisasi instans ini, sewaktu-waktu untuk mengurangi kebuntuan dan masuk kembali.

public Microsoft.VisualStudio.Threading.JoinableTaskFactory.MainThreadAwaitable SwitchToMainThreadAsync(bool alwaysYield, System.Threading.CancellationToken cancellationToken = default);
member this.SwitchToMainThreadAsync : bool * System.Threading.CancellationToken -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.MainThreadAwaitable
Public Function SwitchToMainThreadAsync (alwaysYield As Boolean, Optional cancellationToken As CancellationToken = Nothing) As JoinableTaskFactory.MainThreadAwaitable

Parameter

alwaysYield
Boolean

Nilai yang menunjukkan apakah penelepon harus menghasilkan bahkan jika sudah mengeksekusi pada utas utama.

cancellationToken
CancellationToken

Token yang pembatalannya akan segera menjadwalkan kelanjutan pada utas threadpool dan akan menyebabkan kelanjutan untuk melemparkan OperationCanceledException, bahkan jika penelepon sudah berada di utas utama.

Mengembalikan

Sebuah yang dapat ditunggu.

Pengecualian

Dilemparkan kembali ke penelepon yang menunggu jika cancellationToken dibatalkan, bahkan jika penelepon sudah berada di utas utama.

Keterangan

private async Task SomeOperationAsync()
{
    // This first part can be on the caller's thread, whatever that is.
    DoSomething();

    // Now switch to the Main thread to talk to some STA object.
    // Supposing it is also important to *not* do this step on our caller's callstack,
    // be sure we yield even if we're on the UI thread.
    await this.JoinableTaskFactory.SwitchToMainThreadAsync(alwaysYield: true);
    STAService.DoSomething();
}

Berlaku untuk