本文整理汇总了C#中SendOrPostCallback.ShouldNotBeNull方法的典型用法代码示例。如果您正苦于以下问题:C# SendOrPostCallback.ShouldNotBeNull方法的具体用法?C# SendOrPostCallback.ShouldNotBeNull怎么用?C# SendOrPostCallback.ShouldNotBeNull使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SendOrPostCallback
的用法示例。
在下文中一共展示了SendOrPostCallback.ShouldNotBeNull方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Post
/// <summary>
/// 파생 클래스에서 재정의될 때 비동기 메시지를 동기화 컨텍스트로 디스패치합니다.
/// </summary>
/// <param name="callback">호출할 <see cref="T:System.Threading.SendOrPostCallback"/> 대리자입니다.</param>
/// <param name="state">대리자에 전달된 개체입니다.</param><filterpriority>2</filterpriority>
public override void Post(SendOrPostCallback callback, object state) {
callback.ShouldNotBeNull("callback");
if(IsDebugEnabled)
log.Debug("SynchronizationContext 하에서, Post 호출합니다... state=[{0}]", state);
Task.Factory.StartNew(() => callback(state), CancellationToken.None, TaskCreationOptions.None, _scheduler);
if(IsDebugEnabled)
log.Debug("SynchronizationContext 하에서, Post 호출을 완료하였습니다.");
}
示例2: Send
/// <summary>
/// 파생 클래스에서 재정의될 때 동기 메시지를 동기화 컨텍스트로 디스패치합니다.
/// </summary>
/// <param name="callback">호출할 <see cref="T:System.Threading.SendOrPostCallback"/> 대리자입니다.</param>
/// <param name="state">대리자에 전달된 개체입니다.</param><filterpriority>2</filterpriority>
public override void Send(SendOrPostCallback callback, object state) {
callback.ShouldNotBeNull("callback");
if(IsDebugEnabled)
log.Debug("SynchronizationContext 하에서, Send 호출합니다... state=[{0}]", state);
With.TryActionAsync(() => {
var task = new Task(() => callback(state));
task.RunSynchronously(_scheduler);
task.Wait();
});
if(IsDebugEnabled)
log.Debug("SynchronizationContext 하에서, Send 호출을 완료하였습니다.");
}