Folgendes Programm verbindet sich mit dem Internet und HTML-Inhalt von "msnbc.com" Webseite erhalten und das Ergebnis ausdrucken. Wenn es länger als 2 Sekunden dauert, um Daten von der Webseite abzurufen, möchte ich, dass meine Methode nicht mehr funktioniert und zurückkehrt. Kannst du mir bitte sagen, wie ich das mit einem Beispiel machen kann?C# Wie kann ich eine Methode stoppen, wenn sie länger als 2 Sekunden dauert?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
gethtml();
MessageBox.Show("End of program");
}
public void gethtml()
{
HttpWebRequest WebRequestObject = (HttpWebRequest)HttpWebRequest.Create("http://msnbc.com/");
WebResponse Response = WebRequestObject.GetResponse();
Stream WebStream = Response.GetResponseStream();
StreamReader Reader = new StreamReader(WebStream);
string webcontent = Reader.ReadToEnd();
MessageBox.Show(webcontent);
}
}
Sie wollen wahrscheinlich den Abruf in einem Thread ausgeführt werden, und den Faden ab, wenn es mehr als zwei Sekunden dauert (über einen Timer setup/invoke). – ashes999
@ Ashes999: Das ist eine sehr, sehr schlechte Idee. ** Abbrechen eines Threads nur, wenn Sie den gesamten Prozess abbauen möchten. ** Das Abbrechen eines Threads sollte der letzte Ausweg sein. Durch das Abbrechen eines verwalteten Threads können Datenstrukturen willkürlich beschädigt werden. –
Vielen Dank für Ihre Antworten. –