AsyncOperation.UserSuppliedState プロパティ
アセンブリ: System (system.dll 内)

非同期メソッド呼び出しに渡される状態オブジェクト。

クラスが複数の非同期メソッド、または単一の非同期メソッドの複数の呼び出しをサポートしている場合、クライアントには、どの非同期タスクがイベントを発生させているかを判断する方法が必要となります。MethodNameAsync メソッドには、タスク ID として機能する Object 型のパラメータを指定する必要があります。AsyncOperationManager.CreateOperation メソッドを呼び出すときに、このタスク ID を使用します。この ID によって、クライアントのタスク ID が非同期操作の特定の呼び出しに関連付けられます。このタスク ID は、UserSuppliedState プロパティを通じて実装で使用できます。
![]() |
---|
クライアント コードでは、UserSuppliedState プロパティに必ず一意の値を指定する必要があります。タスク ID が一意ではない場合、実装が進行状況やその他のイベントを誤って報告する可能性があります。コードによって、一意でないタスク ID が存在するかどうかをチェックし、このような ID が検出された場合は、ArgumentException を発生させる必要があります。 |

UserSuppliedState を使用して、非同期操作の有効期間を追跡するコード例を次に示します。このコード例は、System.ComponentModel.AsyncOperationManager クラスのトピックで取り上げているコード例の一部分です。
import System.*; import System.Collections.*; import System.Collections.Specialized.*; import System.ComponentModel.*; import System.Threading.*;
' This method cancels a pending asynchronous operation. Public Sub CancelAsync(ByVal taskId As Object) SyncLock userStateToLifetime.SyncRoot Dim obj As Object = userStateToLifetime(taskId) If Not (obj Is Nothing) Then Dim asyncOp As AsyncOperation = obj Dim numberToTest As Integer = 0 Dim firstDivisor As Integer = 1 Dim isPrime As Boolean = False Dim exception As Exception = Nothing Dim canceled As Boolean = True Dim e As New CalculatePrimeCompletedEventArgs( _ numberToTest, _ firstDivisor, _ isPrime, _ exception, _ canceled, _ asyncOp.UserSuppliedState) ' The asyncOp object is responsible for ' marshalling the call to the proper ' thread or context. asyncOp.PostOperationCompleted( _ onCompletedDelegate, _ e) End If End SyncLock End Sub
// This method cancels a pending asynchronous operation. public void CancelAsync(object taskId) { lock (userStateToLifetime.SyncRoot) { object obj = userStateToLifetime[taskId]; if (obj != null) { AsyncOperation asyncOp = obj as AsyncOperation; int numberToTest = 0; int firstDivisor = 1; bool isPrime = false; Exception exception = null; bool canceled = true; CalculatePrimeCompletedEventArgs e = new CalculatePrimeCompletedEventArgs( numberToTest, firstDivisor, isPrime, exception, canceled, asyncOp.UserSuppliedState); // The asyncOp object is responsible for // marshaling the call to the proper // thread or context. asyncOp.PostOperationCompleted( onCompletedDelegate, e); } } }
public void CancelAsync(Object taskId) { synchronized (userStateToLifetime.get_SyncRoot()) { Object obj = userStateToLifetime.get_Item(taskId); if (obj != null) { AsyncOperation asyncOp = (AsyncOperation)obj; int numberToTest = 0; int firstDivisor = 1; boolean isPrime = false; Exception exception = null; boolean cancelled = true; CalculatePrimeCompletedEventArgs e = new CalculatePrimeCompletedEventArgs(numberToTest, firstDivisor, isPrime, exception, cancelled, asyncOp.get_UserSuppliedState()); // The asyncOp object is responsible for // marshalling the call to the proper // thread or context. asyncOp.PostOperationCompleted(onCompletedDelegate, e); } } } //CancelAsync
public void CancelAsync(Object taskId) { synchronized (userStateToLifetime.get_SyncRoot()) { Object obj = userStateToLifetime.get_Item(taskId); if (obj != null) { AsyncOperation asyncOp = (AsyncOperation)obj; int numberToTest = 0; int firstDivisor = 1; boolean isPrime = false; System.Exception exception = null; boolean cancelled = true; CalculatePrimeCompletedEventArgs e = new CalculatePrimeCompletedEventArgs(numberToTest, firstDivisor, isPrime, exception, cancelled, asyncOp.get_UserSuppliedState()); // The asyncOp object is responsible for // marshalling the call to the proper // thread or context. asyncOp.PostOperationCompleted(onCompletedDelegate, e); } } } //CancelAsync

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からAsyncOperation.UserSuppliedState プロパティを検索する場合は、下記のリンクをクリックしてください。

- AsyncOperation.UserSuppliedState プロパティのページへのリンク