web中使用线程
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Threading;
namespace Tlqy.Market
{
/// <summary>
/// ManagerMenu 的摘要说明。
/// </summary>
public class ManagerMenu : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView MyTree;
protected System.Web.UI.WebControls.Label lab1;
public bool firstThread;
public bool secondThread;
private void Page_Load(object sender, System.EventArgs e)
{
try
{
if (!Page.IsPostBack)
{
firstThread = false;
secondThread = false;
Thread SencondThread = new Thread(new ThreadStart(CreateTree));
SencondThread.Start();
ThreadStart MyThreadMothod = new ThreadStart(MultiThreading);
Thread MyThread = new Thread(MyThreadMothod);
MyThread.Start();
//TreeNode FirstNode = new TreeNode();
//FirstNode.Text = "系统菜单管理";
//ListTree(FirstNode,0);
//MyTree.Nodes.Add(FirstNode);
//this.MyTree.Attributes.Add("onclick","MyTreeonclick()");
while(firstThread && secondThread)
{
Response.Write("i");
}
}
}
catch(System.Exception exc)
{
Response.Write(exc.Message);
}
}
private void CreateTree()
{
//TreeNode FirstNode = new TreeNode();
//FirstNode.Text = "系统菜单管理";
//ListTree(FirstNode,0);
//MyTree.Nodes.Add(FirstNode);
//this.MyTree.Attributes.Add("onclick","MyTreeonclick()");
for (int i=0;i<10;i++)
Response.Write(i.ToString());
firstThread = true;
}
private void MultiThreading()
{
string NodeID = Request.QueryString["id"];
string DoType = Request.QueryString["DoType"];
if (DoType!="" || DoType!=null)
{
this.lab1.Text = NodeID +"," + DoType;
}
secondThread = true;
}
private void ListTree(TreeNode ParentNode,int ParentID)
{
TreeNode subNode;
DataTable ParentMenu = this.GetMenuItem(ParentID);
try
{
for (int i=0;i<ParentMenu.Rows.Count;i++)
{
subNode = new TreeNode();
subNode.Text = ParentMenu.Rows[i]["C_Title"].ToString();
subNode.ID = ParentMenu.Rows[i]["I_RecordID"].ToString();
ListTree(subNode,System.Convert.ToInt32(ParentMenu.Rows[i]["I_RecordID"]));
ParentNode.Nodes.Add(subNode);
}
}
catch
{
}
}
private DataTable GetMenuItem(int ParentID)
{
SqlConnection Conn = new SqlConnection();
DataTable MenuTable = new DataTable();
try
{
try
{
Tlqy.WebServer.BaseDB objConn = new Tlqy.WebServer.BaseDB();
Conn = objConn.Tlqy_Conn();
}
catch
{
Conn.ConnectionString = "数据库连接";
Conn.Open();
}
finally
{
string SqlString = "Select * From tbl_Menu Where I_Rate=" + ParentID;
SqlDataAdapter Da = new SqlDataAdapter(SqlString,Conn);
DataSet Ds = new DataSet();
Da.Fill(Ds,"MenuItem");
MenuTable = Ds.Tables["MenuItem"];
Conn.Close();
Conn.Dispose();
}
return MenuTable;
}
catch
{
Response.Redirect("../Error.aspx");
return null;
}
}
}
}
以上运行时为何会弹出对话框显示:
未处理的“System.Runtime.Serialization.SerializationException”类型的异常出现在 未知模块 中。
其他信息: 程序集 System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 中的类型 System.Web.HttpException 未标记为可序列化。
当我点中断后会出现
:
没有可用于当前位置的源代码
问题点数:100、回复次数:5Top
1 楼net_lover(【孟子E章】)回复于 2004-07-03 12:07:30 得分 60
给你个参考
http://www.csdn.net/Develop/Read_Article.asp?Id=20695Top
2 楼helimin19(冷風.net)回复于 2004-07-03 12:34:17 得分 0
老大,怎么解决呀,问题在哪呀
Top
3 楼helimin19(冷風.net)回复于 2004-07-03 13:49:52 得分 0
老大,怎么解决呀,问题在哪呀Top
4 楼1979xt(搞.NET三年多,现在有点迷惘.)回复于 2004-07-03 15:49:38 得分 20
你这多线程代码只是针对WEB服务器而言的,而你这网页是返回给请求者的,肯定不能正常工作,你的思想都错了.Top
5 楼gxboy(Blin 小学生学.NET)回复于 2004-07-03 16:28:39 得分 20
web一般不用线程吧,用了也白用。Top




