JoinableTaskFactory.SwitchToMainThreadAsync Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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();
}