Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.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中不使用线程#_C# - Fatal编程技术网

C# 如何等待特定功能完成后再启动下一个功能?在C中不使用线程#

C# 如何等待特定功能完成后再启动下一个功能?在C中不使用线程#,c#,C#,我有两个功能 Function1(varName); Function2(); 按相同的顺序调用。 这里字符串varName由线程中的另一个函数调用分配 但在这里,我希望Funtion2在另一个值被分配给varName(调用Funtion1)之前完成 问候,, 下垂的 例如: private void MainFuntion() { Thread StartReadThread = new Thread( new ParameterizedThreadStart(

我有两个功能

Function1(varName);
Function2();
按相同的顺序调用。 这里字符串
varName
由线程中的另一个函数调用分配

但在这里,我希望Funtion2在另一个值被分配给varName(调用Funtion1)之前完成

问候,, 下垂的

例如:

private void MainFuntion()
{
   Thread StartReadThread = new Thread(
            new ParameterizedThreadStart(StartRead));
   StartReadThread .Start(obj_ListDictionary); //ListDictionary object 
}

private void StartRead(object threadData)**
{
  ThreadPool.SetMaxThreads(4, 4);
  m_Events = new ManualResetEvent[m_objSelNsfDataTable.Rows.Count];
  foreach (DataRow objRow in m_objSelNsfDataTable.Rows)
  {
    m_objThreadData                 =   new ThreadData();
    m_objThreadData.FilePath         =   objRow[0].ToString();

    m_objThreadData.ThreadIndex      =   index;
    m_Events[index]                  =   new ManualResetEvent(false);

    WaitCallback objWcb             =   new WaitCallback(FinalFunction);
    ThreadPool.QueueUserWorkItem(objWcb, m_objThreadData);

    index++; 
  }                               

  WaitHandle.WaitAll(m_Events); 
}

private void FinalFunction(object threadData)
{

  ThreadData threadData = (ThreadData)passedThreadData;
  String FilePath = threadData.FilePath;
  CopyContent(FilePath );                    
  OpenFolderForView();

}

Read(解释如何在.NET 3.x和4.0中执行类似的操作)

Read(解释如何在.NET 3.x和4.0中执行类似的操作)

如果Function1调用线程,则可以在退出/返回之前使用
thread.Join

如果Function1调用线程,你可以使用
线程。在退出/返回之前加入

你想要什么还不是很清楚吗?请澄清你的问题-目前根本不清楚发生了什么。如果你能举出一个简短但完整的例子,那会有很大帮助。你想要什么还不是很清楚吗?请澄清你的问题——目前根本不清楚发生了什么。如果你能给出一个简短但完整的例子,那将非常有帮助。
string tempVarName = varName;
Function1(tempVarName);
Function2();
varName = tempVarName;