Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 等待事件链中的方法完成并返回数据_C#_Multithreading_Methods_Event Handling - Fatal编程技术网

C# 等待事件链中的方法完成并返回数据

C# 等待事件链中的方法完成并返回数据,c#,multithreading,methods,event-handling,C#,Multithreading,Methods,Event Handling,我所拥有的: 我有一个web请求方法ClientWebRequest(),它执行一个线程方法GetData(),以执行一些数据处理,在完成时通过事件处理程序执行一个方法DataReceived(),并将数据传递给它 我想做什么: 我想做的是在调用DataReceived()时通知web请求方法ClientWebRequest(),因此ClientWebRequest()本身可以向客户端返回数据,我无法这样做,因为我不知道如何“钩住”web方法来跟踪DataReceived()时发生的情况最终被触

我所拥有的: 我有一个web请求方法
ClientWebRequest()
,它执行一个线程方法
GetData()
,以执行一些数据处理,在完成时通过事件处理程序执行一个方法
DataReceived()
,并将数据传递给它

我想做什么: 我想做的是在调用
DataReceived()
时通知web请求方法
ClientWebRequest()
,因此
ClientWebRequest()
本身可以向客户端返回数据,我无法这样做,因为我不知道如何“钩住”web方法来跟踪
DataReceived()时发生的情况
最终被触发并接收数据

void ClientWebRequest()
{
    GetData() // using a thread
}

void GetData()
{
    Object stockData = doWorkAndGetData();
   //Do some work then notify DataReceived() when all is done with stockData passed to it
}

void DataReceived()
{
    //What I want to do here at this point is to notify ClientWebRequest() and pass stockData back to it
}

你能给我一个简单完整的代码示例吗?现在,您甚至没有显示add处理程序代码或任何签名。现在你让我们猜答案是什么。DataReceived()和ClientWebRequest()中没有代码,这就是我的观点,我不知道如何处理其中的代码,GetData()和DataReceived()之间的事件处理代码与问题无关请努力编写能够请求数据的代码和能够处理数据的代码。我知道您不知道如何等待事件链完成并返回数据,但如果您能向我们展示您是如何请求数据的,以及您预期如何处理数据的,那么我们可以尝试向您展示答案。否则很难给你一个具体的答案。如果你在第一次发布你的问题时给出了足够的细节,你现在可能已经有答案了。使用WaitHandle类对象。我通常使用WaitOne()方法。见以下网页: