本文整理汇总了C#中Channel.ReceiveAsync方法的典型用法代码示例。如果您正苦于以下问题:C# Channel.ReceiveAsync方法的具体用法?C# Channel.ReceiveAsync怎么用?C# Channel.ReceiveAsync使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Channel
的用法示例。
在下文中一共展示了Channel.ReceiveAsync方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReceiveMessageAsync
private async Task ReceiveMessageAsync(Mocks.CloudBlobStorageProviderMock cloudStorage, Mocks.InboxHttpHandlerMock inboxMock, CryptoSettings receiverCrypto, OwnEndpoint receiverEndpoint)
{
Requires.NotNull(cloudStorage, "cloudStorage");
Requires.NotNull(receiverCrypto, "receiverCrypto");
Requires.NotNull(receiverEndpoint, "receiverEndpoint");
var httpHandler = new Mocks.HttpMessageHandlerMock();
cloudStorage.AddHttpHandler(httpHandler);
inboxMock.Register(httpHandler);
var channel = new Channel
{
HttpClient = new HttpClient(httpHandler),
HttpClientLongPoll = new HttpClient(httpHandler),
CloudBlobStorage = cloudStorage,
CryptoServices = receiverCrypto,
Endpoint = receiverEndpoint,
Logger = this.logger,
};
var messages = await channel.ReceiveAsync();
Assert.Equal(1, messages.Count);
Assert.Equal(Valid.Message, messages[0].Payload);
}
示例2: ReceiveMessageAsync
private async Task<IReadOnlyCollection<Channel.PayloadReceipt>> ReceiveMessageAsync(Mocks.CloudBlobStorageProviderMock cloudBlobStorage, Mocks.InboxHttpHandlerMock inboxMock, CryptoSettings cryptoProvider, OwnEndpoint receiver, bool expectMessage = true)
{
Requires.NotNull(cloudBlobStorage, "cloudBlobStorage");
Requires.NotNull(receiver, "receiver");
var httpHandler = new Mocks.HttpMessageHandlerMock();
cloudBlobStorage.AddHttpHandler(httpHandler);
inboxMock.Register(httpHandler);
var channel = new Channel
{
HttpClient = new HttpClient(httpHandler),
HttpClientLongPoll = new HttpClient(httpHandler),
CloudBlobStorage = cloudBlobStorage,
CryptoServices = cryptoProvider,
Endpoint = receiver,
Logger = this.logger,
};
var progressMessage = new TaskCompletionSource<Payload>();
var progress = new Progress<Channel.PayloadReceipt>(m => progressMessage.SetResult(m.Payload));
var messages = await channel.ReceiveAsync(progress: progress);
if (expectMessage)
{
Assert.Equal(1, messages.Count);
await progressMessage.Task;
Assert.Same(progressMessage.Task.Result, messages.Single().Payload);
}
else
{
Assert.Equal(0, messages.Count);
}
return messages;
}
示例3: ReceiveMessageAsync
private async Task<IReadOnlyCollection<Payload>> ReceiveMessageAsync(Mocks.CloudBlobStorageProviderMock cloudBlobStorage, Mocks.InboxHttpHandlerMock inboxMock, ICryptoProvider cryptoProvider, OwnEndpoint receiver) {
Requires.NotNull(cloudBlobStorage, "cloudBlobStorage");
Requires.NotNull(receiver, "receiver");
var httpHandler = new Mocks.HttpMessageHandlerMock();
cloudBlobStorage.AddHttpHandler(httpHandler);
inboxMock.Register(httpHandler);
var channel = new Channel {
HttpClient = new HttpClient(httpHandler),
HttpClientLongPoll = new HttpClient(httpHandler),
CloudBlobStorage = cloudBlobStorage,
CryptoServices = cryptoProvider,
Endpoint = receiver,
Logger = this.logger,
};
var progressMessage = new TaskCompletionSource<Payload>();
var progress = new Progress<Payload>(m => progressMessage.SetResult(m));
var messages = await channel.ReceiveAsync(progress: progress);
Assert.That(messages.Count, Is.EqualTo(1));
await progressMessage.Task;
Assert.That(progressMessage.Task.Result, Is.SameAs(messages.Single()));
return messages;
}