我正在寻找有关如何为程序实现某些功能的想法。
基本上,我有一个主程序/线程,它对库(我也有控制权)进行异步调用以进行一些处理。但是,从该调用中,我需要该库每隔一段时间对主线程进行一次回调,以获取更多数据。我该怎么办?
答案 0 :(得分:0)
因此传递一个回调供库使用。例如:
public class Program
{
static public void Main()
{
var library = new Library();
library.Callback = GetMoreData;
var task = Task.Run( () => library.Foo() );
Console.WriteLine("Other thread is running.");
task.Wait();
}
static string GetMoreData()
{
return "More data";
}
}
class Library
{
public Func<string> Callback { get; set; }
public async Task Foo()
{
for (int i=0; i<10; i++)
{
var moreData = Callback();
Console.WriteLine("Library received this data: {0}", moreData);
await Task.Delay(500);
}
}
}