我想在Rx订阅中回调一个异步函数.
就像这样:
public class Consumer
{
private readonly Service _service = new Service();
public ReplaySubject<string> Results = new ReplaySubject<string>();
public void Trigger()
{
Observable.Timer(TimeSpan.FromMilliseconds(100)).Subscribe(async _ => await RunAsync());
}
public Task RunAsync()
{
return _service.DoAsync();
}
}
public class Service
{
public async Task<string> DoAsync()
{
return await Task.Run(() => Do());
}
private static string Do()
{
Thread.Sleep(TimeSpan.FromMilliseconds(200));
throw new ArgumentException("invalid!");
return "foobar";
}
}
[Test]
public async Task Test()
{
var sut = new Consumer();
sut.Trigger();
var result = …Run Code Online (Sandbox Code Playgroud) 这些文件是在包恢复期间创建的,这就是为什么我认为它们不必在存储库中.是否有进一步的文件说明这些文件的目的可能有助于回答这个问题?
我正在尝试获取联系人的头像图像。
using Microsoft.Office.Interop.Outlook;
public sealed class OutlookAvatarFetcher
{
private static void FetchAvatars()
{
var outlook = new Application();
var folder = outlook.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderContacts);
var items = folder.Items;
for (var i = 0; i < items.Count; ++i)
{
var contact = items[i + 1] as ContactItem;
if (contact == null)
continue;
if (contact.HasPicture)
{
// TODO store the picture somehow.
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但不幸的是我找不到图片访问器。
我有一个像这样的输入序列8, 7, 6, 5, 4, 3, 2, 1, 0, 5, 4, 3, 2, 1, 0, 4。结果应该显示的是0, 0。
是的,这很容易。0, 0但当输入仅为 时,我不希望结果为0, 0。
这里的问题是,它应该只0在前一个值大于零时才发布。