Następujący program połączy się z internetem i pobierze zawartość html ze strony "msnbc.com" i wydrukuje wynik. Jeśli pobranie danych ze strony trwa dłużej niż 2 sekundy, chcę, aby moja metoda przestała działać i powróciła. Czy możesz mi powiedzieć, jak mogę to zrobić na przykładzie?C# Jak zatrzymać metodę, jeśli trwa to dłużej niż 2 sekundy?
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);
}
}
Prawdopodobnie chcesz wykonać fetch w wątku, i przerwać wątek jeśli trwa dłużej niż dwie sekundy (poprzez konfigurację/wywołanie czasomierza). – ashes999
@ ashes999: To bardzo, bardzo zły pomysł. ** Przerwij tylko wątek, jeśli planujesz przerwać cały proces. ** Przerwanie wątku powinno być ostatecznością. Przerwanie zarządzanego wątku może dowolnie uszkodzić struktury danych. –
Wielkie dzięki za wszystkie odpowiedzi. –