スレッド方式でInt32.Parse(Request.QueryString["PLCID"].ToString())
の値を取得しようとしたとき、私はエラーを得て、私はparameterizedthreadを使用しようとしましたが、私のコードスニペットASP.NET:スレッドメソッドでQueryStringの値を取得する方法は?
protected void btnReqConfirm_Click(object sender, EventArgs e)
{
Int32 val = Int32.Parse(Request.QueryString["PLCID"].ToString());
id = Guid.NewGuid();
ThreadStart ts = new ThreadStart(longRunningProcess);
Thread th = new Thread(ts);
th.Start();
Response.Redirect("Status.aspx?ID="+id.ToString());
}
protected void longRunningProcess()
{
String _MachineName = String.Empty;
_MachineIP = String.Empty;
DBLayer.getMachineByPLCID(Int32.Parse(Request.QueryString["PLCID"].ToString()), out _MachineName, out _MachineIP);
if (DBLayer.insertRequest(User.Identity.Name, DBLayer.getMachineID(_MachineName), Convert.ToDateTime(lblReqFromVal.Text), Convert.ToDateTime(lblReqToVal.Text)))
{
_PLCName = DBLayer._getPlCByID(Int32.Parse(Request.QueryString["PLCID"].ToString()));
//stop mail now
LogicLayer.AddNewListItem("Confirmation Mail", "You can initiate your session directly from this link : " + string.Format(@"http://IP/RRRProject/DirectSessionPage.aspx?Machine={0}", _MachineIP), (User.Identity.Name).Substring(5) + "@invensys.com");
lblConfirmationMessage.Visible = true;
lblConfirmationMessage.ForeColor = Color.Green;
Thread.Sleep(9000);
SimpleProcessCollections.Add(id, "Some result.");
}
}
任意のアイデアここ
をfaild?
あなたが話しているこのエラーの詳細を掲載していますか?また、従来のアプリケーションと同様に、asp.netによるマルチスレッドは機能しません。メインスレッドが既に 'Request.Response()'を行った後で、サイドスレッドがコントロールを更新することはできません。 (多分あなたはAJAXを見たいと思っていますか?) –
あなたは私の解決策を試しましたか? –