using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Net;
using System.IO;
using System.Collections;namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
delegate void ThreadDelegate();
ThreadDelegate ThreadD = null;
Thread th;
private void button1_Click(object sender, EventArgs e)
{
ThredBool = true;
th = new Thread(setdelegate);
th.IsBackground = true;
th.Start();
}
bool ThredBool = true;
public void setdelegate()
{ while (ThredBool)
{
ThreadD = new ThreadDelegate(GetDataReg);
this.BeginInvoke(ThreadD);
Thread.Sleep(1000);
}
}
ArrayList redlist = new ArrayList(); HttpWebRequest request = null;
public void GetDataReg()
{ String lshtms = "";
try
{
string bianma = "UTF-8"; request = (HttpWebRequest)WebRequest.Create("http://www.asdasdas.com"); request.Accept = "*/*";
HttpWebResponse response = null;
Stream stream = null;
StreamReader reader = null;
redlist.Clear();
response = (HttpWebResponse)request.GetResponse();
request.Timeout = 500;
stream = response.GetResponseStream();
if (bianma.Equals("UTF-8"))
{
reader = new StreamReader(stream, Encoding.UTF8);
}
else
{
reader = new StreamReader(stream, Encoding.Default);
}
while (!reader.EndOfStream)
{
lshtms += reader.ReadLine() + "\r\n";
}
stream.Close();
stream.Dispose();
}
catch
{
}
}
}
}这样写 为什么界面会卡 无法响应
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Net;
using System.IO;
using System.Collections;namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
delegate void ThreadDelegate();
ThreadDelegate ThreadD = null;
Thread th;
private void button1_Click(object sender, EventArgs e)
{
ThredBool = true;
th = new Thread(setdelegate);
th.IsBackground = true;
th.Start();
}
bool ThredBool = true;
public void setdelegate()
{ while (ThredBool)
{
ThreadD = new ThreadDelegate(GetDataReg);
this.BeginInvoke(ThreadD);
Thread.Sleep(1000);
}
}
ArrayList redlist = new ArrayList(); HttpWebRequest request = null;
public void GetDataReg()
{ String lshtms = "";
try
{
string bianma = "UTF-8"; request = (HttpWebRequest)WebRequest.Create("http://www.asdasdas.com"); request.Accept = "*/*";
HttpWebResponse response = null;
Stream stream = null;
StreamReader reader = null;
redlist.Clear();
response = (HttpWebResponse)request.GetResponse();
request.Timeout = 500;
stream = response.GetResponseStream();
if (bianma.Equals("UTF-8"))
{
reader = new StreamReader(stream, Encoding.UTF8);
}
else
{
reader = new StreamReader(stream, Encoding.Default);
}
while (!reader.EndOfStream)
{
lshtms += reader.ReadLine() + "\r\n";
}
stream.Close();
stream.Dispose();
}
catch
{
}
}
}
}这样写 为什么界面会卡 无法响应
解决方案 »
- 急求C#解答。。
- 关于DataGridview中添加了DataGridViewComboBoxCell如何设置其默认值
- 关于Combobox与TextBox连接
- enum 如何表示一个 string
- 如何把一个二维数组的内容全部输到datagridview中?
- 在webform中,当从页面1跳转到页面2,如何禁止用IE栏的“后退”从页面2返回页面1?
- 请问Crystal Report的问题!
- MVVM DelegateCommand<T>的一个不理解的地方
- 有没有其他像CSDN一样好的C#论坛
- 强烈要求aspcn(飞刀)写写自己的程序人生历程,各位兄弟一起帮我推一下!!!
- vs生成的安装包,安装时出现的问题
- 如何使用显卡
{
ThreadD = new ThreadDelegate(GetDataReg);
this.BeginInvoke(ThreadD);
Thread.Sleep(1000);
}这里你有可能建立无数个线程。如果真的用这么多线程,建议使用线程池。线程也是有上限的。
{
ThreadD = new ThreadDelegate(GetDataReg);
this.BeginInvoke(ThreadD);
Thread.Sleep(1000);
}
你看看ThredBool是否始终是True?如果是的话就是一个死循环了。
要是不调用GetDataReg()获取网站源码的
在 GetDataReg 处理一些其他的数据,不会出现卡界面 为什么啊 ?
我是要定时启动线程 while 里是死循环为什么处理其他数据 不会出现这么卡的情况呢
我以前在做“罗汉塔游戏”的时候遇见过。