「開始」ボタンが1つあるwinフォームがあり、それをクリックすると、.txtファイルを1行ずつ読み取り始め、サーバーにリクエストを送信します。私の質問は-「開始」をクリックしてファイルから50行を読み取り、停止して「開始」をクリックするのを待つ場合、どうすればよいですか。ここで可能な解決策はスレッド化だけですか?これは私のボタンです:
private void btnStart_Click(object sender, EventArgs e)
{
List<string> List = LoadFromFile("FILE");
int dialogid = 0;
foreach (string g in List)
{
dialogid++;
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("number", g);
parameters.Add("dialogid", dialogid.ToString());
if (InvokeService(this.tbWebServiceURL.Text, parameters) == false)
{
MessageBox.Show("ERROR!", "ERROR");
return;
}
}
そして、これが私の投稿リクエストです:
private bool InvokeService(string ServiceURL, Dictionary<string, string> parameters)
{
try
{
string data = "";
int cnt = 0;
byte[] dataStream = Encoding.UTF8.GetBytes(data);
WebRequest webRequest = WebRequest.Create("URL");
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = dataStream.Length;
foreach (KeyValuePair<string, string> kvk in parameters)
{
webRequest.Headers.Add(kvk.Key, kvk.Value);
}
WebResponse response = webRequest.GetResponse();
Stream dataStreamResponse = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStreamResponse);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
dataStreamResponse.Close();
response.Close();
ここで最も重要なのは、「開始」を1回クリックするだけでファイル全体を読み取ることではありません。別の「開始」を待つ必要があります。50行を読み取り、「開始」をクリックして2番目の50行を読み取るのを待ちます。