AsyncOperation.UserSuppliedState プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
非同期操作を一意に識別するために使用するオブジェクトを取得または設定します。
public:
property System::Object ^ UserSuppliedState { System::Object ^ get(); };
public object UserSuppliedState { get; }
public object? UserSuppliedState { get; }
member this.UserSuppliedState : obj
Public ReadOnly Property UserSuppliedState As Object
プロパティ値
非同期メソッド呼び出しに渡される状態オブジェクト。
例
次のコード例では、 を使用して UserSuppliedState 非同期操作の有効期間を追跡する方法を示します。 このコード例は、System.ComponentModel.AsyncOperationManager クラスのために提供されている大規模な例の一部です。
// This method cancels a pending asynchronous operation.
public void CancelAsync(object taskId)
{
AsyncOperation asyncOp = userStateToLifetime[taskId] as AsyncOperation;
if (asyncOp != null)
{
lock (userStateToLifetime.SyncRoot)
{
userStateToLifetime.Remove(taskId);
}
}
}
' This method cancels a pending asynchronous operation.
Public Sub CancelAsync(ByVal taskId As Object)
Dim obj As Object = userStateToLifetime(taskId)
If (obj IsNot Nothing) Then
SyncLock userStateToLifetime.SyncRoot
userStateToLifetime.Remove(taskId)
End SyncLock
End If
End Sub
注釈
クラスで複数の非同期メソッドまたは 1 つの非同期メソッドの複数の呼び出しがサポートされている場合、クライアントはイベントを発生させる非同期タスクを判断する方法が必要です。 メソッドは MethodNameAsync
、タスク ID として機能する型 Object のパラメーターを受け取る必要があります。 このタスク ID は、 メソッドを呼び出 AsyncOperationManager.CreateOperationすときに使用します。これにより、クライアントのタスク ID が非同期操作の特定の呼び出しに関連付けられます。 このタスク ID は、 プロパティを使用して実装で UserSuppliedState 使用できるようになります。
注意事項
クライアント コードでは、 プロパティに一意の値を指定するように注意する UserSuppliedState 必要があります。 一意でないタスク ID を使用すると、実装で進行状況やその他のイベントが誤って報告される可能性があります。 コードでは、一意でないタスク ID をチェックし、検出された場合は をArgumentException発生させる必要があります。
適用対象
こちらもご覧ください
.NET