私はタイマーを使用しています -
static int count = 0;
private void button1_Click(object sender, EventArgs e)
{
// set time
timer1.Interval = System.Convert.ToInt32(textBox2.Text) * 1000;
// start timer
timer1.Enabled = true;
// set iterations
count = System.Convert.ToInt32(textBox3.Text);
}
ダニの場所 -
private void timer1_Tick_1(object sender, EventArgs e)
{
count--;
if (count == 0)
{
timer1.Enabled = false;
}
listBox1.Items.Add(textBox1.Text + " : " + count.ToString());
var status = textBox1.Text + " : " + count.ToString();
}
1秒ごとに刻む時間を設定し、カウントを4に設定すると、これによりイベントが毎秒実行され、4回繰り返されると推測されました。ただし、イベントを 3 回繰り返すと、クラッシュします。リスト ボックスは次のように更新されます -
test : 3
test : 2
test : 1
エラーは -
The operation has timed out
これは、タイマー ティック内に Web リクエストを作成していることが原因である可能性があると思います - `
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(resource_url);
request.Headers.Add("Authorization", authHeader);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (Stream stream = request.GetRequestStream())
{
byte[] content = ASCIIEncoding.ASCII.GetBytes(postBody);
stream.Write(content, 0, content.Length);
}
WebResponse response = request.GetResponse();`
どうすればこの問題を回避できますか? さらに読むと、URL に対して 2 つ以上の呼び出しを行うと、このエラーが発生することが示されています。