【发布时间】:2014-01-26 12:49:34
【问题描述】:
我有 2 个表格
在表格 1 中只有一个按钮
在表格 2 中只有一个 Web 浏览器。
我想在webbrowser.DocumentText 中设置短信响应流
跨线程操作无效:控件“webBrowser1”访问自 与创建它的线程不同的线程。
public partial class Form1 : Form
{
CookieContainer cookies = new CookieContainer();
Form2 form2 = new Form2();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread th = new Thread(Dowork);
th.SetApartmentState(ApartmentState.STA);
th.Start();
}
void Dowork()
{
try
{
Encoding charset = Encoding.GetEncoding("utf-8");
HttpWebRequest SMSRequset = (HttpWebRequest)WebRequest.Create("http://www.iam.ma/_layouts/SharepointFreeSms/EnvoyerSms.aspx");
SMSRequset.Method = "GET";
SMSRequset.CookieContainer = cookies;
HttpWebResponse SMSResponse = (HttpWebResponse)SMSRequset.GetResponse();
System.IO.StreamReader reader2 = new System.IO.StreamReader(SMSResponse.GetResponseStream(), charset);
form2.Show();
form2.Invoke((MethodInvoker)delegate
{
form2.webBrowser1.DocumentText = reader2.ReadToEnd();
});
}
catch (Exception EX)
{
MessageBox.Show(EX.Message);
}
}
}
我该怎么办?
错误在这里
form2.webBrowser1.DocumentText = reader2.ReadToEnd();
【问题讨论】:
-
当您尝试排除故障时,
ex.Message还不够好。使用ex.ToString()。
标签: c# multithreading winforms