Bagikan melalui


JoinableTaskFactory.Run Metode

Definisi

Overload

Run(Func<Task>)

Menjalankan metode asinkron yang ditentukan untuk penyelesaian sambil secara sinkron memblokir utas panggilan.

Run(Func<Task>, JoinableTaskCreationOptions)

Menjalankan metode asinkron yang ditentukan untuk penyelesaian sambil secara sinkron memblokir utas panggilan.

Run<T>(Func<Task<T>>, JoinableTaskCreationOptions)

Menjalankan metode asinkron yang ditentukan untuk penyelesaian sambil secara sinkron memblokir utas panggilan.

Run<T>(Func<Task<T>>)

Menjalankan metode asinkron yang ditentukan untuk penyelesaian sambil secara sinkron memblokir utas panggilan.

Run(Func<Task>)

Menjalankan metode asinkron yang ditentukan untuk penyelesaian sambil secara sinkron memblokir utas panggilan.

public:
 void Run(Func<System::Threading::Tasks::Task ^> ^ asyncMethod);
public void Run (Func<System.Threading.Tasks.Task> asyncMethod);
member this.Run : Func<System.Threading.Tasks.Task> -> unit
Public Sub Run (asyncMethod As Func(Of Task))

Parameter

asyncMethod
Func<Task>

Metode asinkron untuk dijalankan.

Keterangan

Pengecualian apa pun yang dilemparkan oleh delegasi ditumbuhi kembali dalam jenis aslinya ke pemanggil metode ini.

Ketika delegasi dilanjutkan dari hasil menunggu, perilaku defaultnya adalah melanjutkan dalam konteks aslinya sebagai eksekusi metode asinkron biasa. Misalnya, jika penelepon berada di utas utama, eksekusi dilanjutkan setelah menunggu di utas utama; tetapi jika dimulai pada utas threadpool, utas tersebut dilanjutkan pada utas threadpool.

// On threadpool or Main thread, this method will block
// the calling thread until all async operations in the
// delegate complete.
joinableTaskFactory.Run(async delegate {
    // still on the threadpool or Main thread as before.
    await OperationAsync();
    // still on the threadpool or Main thread as before.
    await Task.Run(async delegate {
         // Now we're on a threadpool thread.
         await Task.Yield();
         // still on a threadpool thread.
    });
    // Now back on the Main thread (or threadpool thread if that's where we started).
});

Berlaku untuk

Run(Func<Task>, JoinableTaskCreationOptions)

Menjalankan metode asinkron yang ditentukan untuk penyelesaian sambil secara sinkron memblokir utas panggilan.

public:
 void Run(Func<System::Threading::Tasks::Task ^> ^ asyncMethod, Microsoft::VisualStudio::Threading::JoinableTaskCreationOptions creationOptions);
public void Run (Func<System.Threading.Tasks.Task> asyncMethod, Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions creationOptions);
member this.Run : Func<System.Threading.Tasks.Task> * Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions -> unit
Public Sub Run (asyncMethod As Func(Of Task), creationOptions As JoinableTaskCreationOptions)

Parameter

asyncMethod
Func<Task>

Metode asinkron untuk dijalankan.

creationOptions
JoinableTaskCreationOptions

yang JoinableTaskCreationOptions digunakan untuk menyesuaikan perilaku tugas.

Berlaku untuk

Run<T>(Func<Task<T>>, JoinableTaskCreationOptions)

Menjalankan metode asinkron yang ditentukan untuk penyelesaian sambil secara sinkron memblokir utas panggilan.

public:
generic <typename T>
 T Run(Func<System::Threading::Tasks::Task<T> ^> ^ asyncMethod, Microsoft::VisualStudio::Threading::JoinableTaskCreationOptions creationOptions);
public T Run<T> (Func<System.Threading.Tasks.Task<T>> asyncMethod, Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions creationOptions);
member this.Run : Func<System.Threading.Tasks.Task<'T>> * Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions -> 'T
Public Function Run(Of T) (asyncMethod As Func(Of Task(Of T)), creationOptions As JoinableTaskCreationOptions) As T

Jenis parameter

T

Jenis nilai yang dikembalikan oleh operasi asinkron.

Parameter

asyncMethod
Func<Task<T>>

Metode asinkron untuk dijalankan.

creationOptions
JoinableTaskCreationOptions

yang JoinableTaskCreationOptions digunakan untuk menyesuaikan perilaku tugas.

Mengembalikan

T

Hasil Tugas yang dikembalikan oleh asyncMethod.

Keterangan

Pengecualian apa pun yang dilemparkan oleh delegasi ditumbuhi kembali dalam jenis aslinya ke pemanggil metode ini.

Ketika delegasi dilanjutkan dari hasil menunggu, perilaku defaultnya adalah melanjutkan dalam konteks aslinya sebagai eksekusi metode asinkron biasa. Misalnya, jika penelepon berada di utas utama, eksekusi dilanjutkan setelah menunggu di utas utama; tetapi jika dimulai pada utas threadpool, utas tersebut dilanjutkan pada utas threadpool.

// On threadpool or Main thread, this method will block
// the calling thread until all async operations in the
// delegate complete.
joinableTaskFactory.Run(async delegate {
    // still on the threadpool or Main thread as before.
    await OperationAsync();
    // still on the threadpool or Main thread as before.
    await Task.Run(async delegate {
         // Now we're on a threadpool thread.
         await Task.Yield();
         // still on a threadpool thread.
    });
    // Now back on the Main thread (or threadpool thread if that's where we started).
});

Berlaku untuk

Run<T>(Func<Task<T>>)

Menjalankan metode asinkron yang ditentukan untuk penyelesaian sambil secara sinkron memblokir utas panggilan.

public:
generic <typename T>
 T Run(Func<System::Threading::Tasks::Task<T> ^> ^ asyncMethod);
public T Run<T> (Func<System.Threading.Tasks.Task<T>> asyncMethod);
member this.Run : Func<System.Threading.Tasks.Task<'T>> -> 'T
Public Function Run(Of T) (asyncMethod As Func(Of Task(Of T))) As T

Jenis parameter

T

Jenis nilai yang dikembalikan oleh operasi asinkron.

Parameter

asyncMethod
Func<Task<T>>

Metode asinkron untuk dijalankan.

Mengembalikan

T

Hasil Tugas yang dikembalikan oleh asyncMethod.

Keterangan

Pengecualian apa pun yang dilemparkan oleh delegasi ditumbuhi kembali dalam jenis aslinya ke pemanggil metode ini.

Ketika delegasi dilanjutkan dari hasil menunggu, perilaku defaultnya adalah melanjutkan dalam konteks aslinya sebagai eksekusi metode asinkron biasa. Misalnya, jika penelepon berada di utas utama, eksekusi dilanjutkan setelah menunggu di utas utama; tetapi jika dimulai pada utas threadpool, utas tersebut dilanjutkan pada utas threadpool.

Run(Func<Task>) Lihat dokumentasi kelebihan beban misalnya.

Berlaku untuk