c#--简单http image 浏览器

来源:互联网 发布:行政服务中心招聘网络 编辑:程序博客网 时间:2024/06/06 03:47
1.

//输出跟踪信息

Trace.WriteLine()

将有关跟踪的信息写入Listeners集合中的跟踪侦听器

在调试和release模式都输出!默认是写到输出 窗口的,也可以指定写到指定文件,或系统日志中!

//输出调试信息

Debug.WriteLine()将有关调试的信息写入Listeners集合中的跟踪侦听器 。只有调试的时候才输出。


2.线程间操作无效: 从不是创建控件 textBoxStaus 的线程访问它。使用【不调试模式运行】会正常,而【调试模式运行】会报错。

问题的原因是net2.0以后拒绝访问空间,避免空间造成死锁,以前Control.CheckForIIegalCrossThreadCalls=false,现在默认为true。

解决的方法有:

(1)在窗体构造函数中写Control.CheckForIIegalCrossThreadCalls=true;

(2)使用Invoke等委托函数。

    private void change()
        {
            this.label1.Text = "已发生变化";
        }
private void button1_Click(object sender, EventArgs e) //按钮事件
        {
            Thread cha = new Thread(new ThreadStart(change));
            cha.Start();
        }

错误提示:           未处理 System.InvalidOperationException
Message="线程间操作无效: 从不是创建控件“label1”的线程访问它。"

解决方法:

private void change()
        {
            this.label1.Text = "已发生变化";
        }
private void threadchange()   //通过委托处理,MSDN上又很详细用法的说明
        {
            MethodInvoker In = new MethodInvoker(change);
            this.BeginInvoke(In);
        }
private void button1_Click(object sender, EventArgs e)
        {
            Thread cha = new Thread(new ThreadStart(threadchange));
            cha.Start();
        }

参考:http://www.cnblogs.com/baiefjg/archive/2009/6/14.html


源代码:http://download.csdn.net/detail/chs007chs/7327863

0 0
原创粉丝点击