using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace WindowsApplication1
{
public partial class Form2 : Form
{
System.Timers.Timer timer;
public Form2()
{
InitializeComponent();
timer = new System.Timers.Timer();
object obj= timer.InitializeLifetimeService();
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Interval = 5000;
timer.Enabled = true;
} public void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
WebBrowser web = new WebBrowser();
}
}
}
WebBrowser web = new WebBrowser();
报错
错误:当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。请大家不要改掉 WebBrowser 以及Timer (因为一个项目框架中用的Timer,我写的程序中用的WebBrowser)
http://topic.csdn.net/u/20100510/19/7f68e347-c047-44a3-96e9-5bcfdd64afff.html
这两个问题差不多,都一百分
2、委托
3、参考:http://topic.csdn.net/u/20100510/12/2fc74a41-6c2b-4a9a-bf23-41ca47ae77c1.html
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace WindowsApplication1
{
public partial class Form2 : Form
{
WebBrowser web ;
System.Timers.Timer timer;
public Form2()
{
InitializeComponent();
timer = new System.Timers.Timer();
object obj= timer.InitializeLifetimeService();
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Interval = 5000;
timer.Enabled = true;
} public void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
web = new WebBrowser();
}
}
}
虽然给你改了,但是不建议这样写。尤其避免使用timer控件。
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisible(true)]
[STAThread]
所以才会报错:当前线程不在单线程单元中,因此无法实例化 ActiveX 控件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace WindowsApplication1
{
public partial class Form1 : Form
{
System.Timers.Timer timer;
public Form1()
{
InitializeComponent();
timer = new System.Timers.Timer();
object obj = timer.InitializeLifetimeService();
timer.SynchronizingObject = this;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.Interval = 1000;
timer.Enabled = true;
} public void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
System.Timers.Timer tm = (System.Timers.Timer)sender;
ISynchronizeInvoke isi = tm.SynchronizingObject;
isi.Invoke(new MethodInvoker(work), null);
} void work()
{
WebBrowser web = new WebBrowser();
}
}
}