C# Threading.Suspendre dans Obsolète, le fil a été abandonné?

Dans mon application, j'effectue ma lecture du fichier par un autre thread(autres que le thread GUI). Il y a deux boutons qui permettent de suspendre et de reprendre le Fil respectivement.

private void BtnStopAutoUpd_Click(object sender, EventArgs e)
        {
           autoReadThread.Suspend();
        }

private void BtnStartAutoUpd_Click(object sender, EventArgs e)
        {
           autoReadThread.Resume();  
        }

mais je suis face à cet avertissement,

Fil.Suspendre a été désapprouvée. Veuillez utiliser d'autres classes dans le Système.Threading, tel qu'un Moniteur, Mutex, de l'Événement, et un Sémaphore, pour synchroniser les Threads ou de protéger les ressources. http://go.microsoft.com/fwlink/?linkid=14202

Tout comment je cours seul thread (plutôt que de thread GUI), alors Comment puis-je appliquer la Synchronisation ici, ou du moniteur.

Code De Mise À Jour:

 class ThreadClass
{
//This delegate enables asynchronous calls for setting the text property on a richTextBox control.
delegate void UpdateTextCallback(object text);
//create thread that perform actual task
public Thread autoReadThread = null;
public ManualResetEvent _event = new ManualResetEvent(true);
//a new reference to rich text box
System.Windows.Forms.RichTextBox Textbox = null;
private volatile bool _run;
public bool Run
{
get { return _run; }
set { _run = value; }
}
public ThreadClass(string name, System.Windows.Forms.RichTextBox r1)
{
Textbox = r1;
Run = true;
this.autoReadThread = new Thread(new ParameterizedThreadStart(UpdateText));
this.autoReadThread.Start(name);
}
private void UpdateText(object fileName)
{
//while (true)
//{
//   _event.WaitOne();
while (Run)
{
if (Textbox.InvokeRequired)
{
UpdateTextCallback back = new UpdateTextCallback(UpdateText);
Textbox.BeginInvoke(back, new object[] { fileName });
Thread.Sleep(1000);
}
else
{
string fileToUpdate = (string)fileName;
using (StreamReader readerStream = new StreamReader(fileToUpdate))
{
Textbox.Text = readerStream.ReadToEnd();
}
break;
//}
}
}       
}
}

}

run est bool valeur, un fil de contrôle(à l'origine de son vrai)

et démarrer le thread, je suis la création de cette instance de classe(ce début de thread également) dans d'autres classe

Vous mise à jour ne montrent pas: a) Comment votre thread est démarré, b) le fil complet de la méthode.
InvokeRequired est toujours vrai. Votre fils ne veut pas faire quelque chose d'utile, tout fonctionne sur le thread d'INTERFACE utilisateur.

OriginalL'auteur PawanS | 2010-12-22