C# 在主应用程序和库之间来回移动数据
我正在寻找关于如何为程序实现某些功能的想法C# 在主应用程序和库之间来回移动数据,c#,.net,multithreading,C#,.net,Multithreading,我正在寻找关于如何为程序实现某些功能的想法 基本上,我有一个主程序/线程,它对一个库进行异步调用,我还可以控制该库进行一些处理。但是,从这个调用中,我需要库每隔一段时间对主线程进行一次回调,以获取更多数据。我如何才能做到这一点?因此,请传递一个回调以供库使用。例如: public class Program { static public void Main() { var library = new Library(); library.Call
基本上,我有一个主程序/线程,它对一个库进行异步调用,我还可以控制该库进行一些处理。但是,从这个调用中,我需要库每隔一段时间对主线程进行一次回调,以获取更多数据。我如何才能做到这一点?因此,请传递一个回调以供库使用。例如:
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);
}
}
}
首先,请共享您迄今为止实现的代码。如果不了解库,则无法回答此问题。请给我们看看库和一些关于如何打电话的代码。我无法发布库,因为它的业务逻辑和他们不喜欢发布代码。然而,@john wu的回答是完美的