本文整理汇总了C#中System.Operation.TryFireAsync方法的典型用法代码示例。如果您正苦于以下问题:C# Operation.TryFireAsync方法的具体用法?C# Operation.TryFireAsync怎么用?C# Operation.TryFireAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Operation
的用法示例。
在下文中一共展示了Operation.TryFireAsync方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CancellationTokenCancelsOperation
public void CancellationTokenCancelsOperation()
{
var sm = new StateMachine("sm");
var initial = sm.CreateInitialState("initial");
var doingOperation = sm.CreateState("doingOperation");
var completedOperation = sm.CreateState("completedOperation");
var evt = new Event("evt");
initial.TransitionOn(evt).To(doingOperation);
doingOperation.TransitionOn(evt).To(completedOperation);
var cts = new CancellationTokenSource();
var op = new Operation<State>(evt, doingOperation, completedOperation);
var task = op.TryFireAsync(cts.Token);
Assert.False(task.IsCompleted);
Assert.False(task.IsCanceled);
cts.Cancel();
Assert.True(task.IsCanceled);
// Check nothing explodes
evt.Fire();
}
示例2: OperationCompletesWhenASuccessStateIsReached
public void OperationCompletesWhenASuccessStateIsReached()
{
var sm = new StateMachine("sm");
var initial = sm.CreateInitialState("initial");
var doingOperation = sm.CreateState("doingOperation");
var completedOperation = sm.CreateState("completedOperation");
var evt = new Event("evt");
initial.TransitionOn(evt).To(doingOperation);
doingOperation.TransitionOn(evt).To(completedOperation);
var op = new Operation<State>(evt, doingOperation, completedOperation);
var task = op.TryFireAsync();
Assert.False(task.IsCompleted);
Assert.AreEqual(doingOperation, sm.CurrentState);
evt.TryFire();
Assert.True(task.IsCompleted);
Assert.True(task.Result);
}
示例3: OperationFailsIfANonSuccessStateIsReached
public void OperationFailsIfANonSuccessStateIsReached()
{
var sm = new StateMachine("sm");
var initial = sm.CreateInitialState("initial");
var doingOperation = sm.CreateState("doingOperation");
var completedOperation = sm.CreateState("completedOperation");
var operationFailed = sm.CreateState("operationFailed");
var evt = new Event("evt");
initial.TransitionOn(evt).To(doingOperation);
doingOperation.TransitionOn(evt).To(operationFailed);
var op = new Operation<State>(evt, doingOperation, completedOperation);
var task = op.TryFireAsync();
Assert.False(task.IsCompleted);
Assert.AreEqual(doingOperation, sm.CurrentState);
evt.TryFire();
Assert.True(task.IsFaulted);
var e = Assert.Throws<OperationFailedException>(() => task.GetAwaiter().GetResult());
Assert.AreEqual(doingOperation, e.OperationStates[0]);
Assert.AreEqual(operationFailed, e.ActualState);
Assert.That(e.SuccessStates, Is.EquivalentTo(new[] { completedOperation }));
}
示例4: TryFireReturnsFalseIfEventTryFireReturnedFalse
public void TryFireReturnsFalseIfEventTryFireReturnedFalse()
{
var sm = new StateMachine("sm");
var initial = sm.CreateInitialState("initial");
var operation = sm.CreateState("state2");
var success = sm.CreateState("success");
var evt = new Event("evt");
operation.TransitionOn(evt).To(operation);
var op = new Operation<State>(evt, operation, success);
var task = op.TryFireAsync();
Assert.True(task.IsCompleted);
Assert.False(task.Result);
}