2009-11-05 7 views
0

J'ai deux fonctions.Comment attendre la fin d'une fonction particulière pour démarrer la prochaine fonction? Sans utiliser de fil dans C#

Function1(varName); 
Function2(); 

appelé dans la même séquence. Ici, la chaîne varName est affectée par un autre appel de fonction qui se trouve dans le fil.

Mais ici je veux compléter Funtion2 avant qu'une autre valeur ne soit affectée à varName (Funtion1 est appelée).

salutations, Sagy

exemple:

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(); 

} 
+1

Ce n'est pas vraiment clair ce que vous voulez? – AnthonyWJones

+0

S'il vous plaît clarifier votre question - ce n'est pas du tout clair ce qui se passe en ce moment. Si vous pouviez produire un exemple court mais complet, cela aiderait beaucoup. –

+0

Code de fonction1. – Zote

Répondre

3
string tempVarName = varName; 
Function1(tempVarName); 
Function2(); 
varName = tempVarName; 
0

Lire this (explique comment faire des choses comme ça dans 3.x .NET et aussi 4.0)

0

Si Fonction1 appelle le fil, vous pouvez utiliser thread.Join avant les sorties/retour.

Questions connexes