首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 高分请教 新页面中打开的页面影响原页面的问题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mvpme82
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-23 15:31:17 楼主
    我的主页面里运行又线程,代码如下:
    Imports System.Net
    Imports System.Net.Sockets
    Imports System.Threading
    Imports System.data
    Imports System.Data.SqlClient
    Partial Class LocalServer
        Inherits System.Web.UI.Page
     
        Private MyCon As New SqlConnection
        Private mclsDbCommon As DbCommon
        Private MyDataAdapter As New SqlDataAdapter
        Private MySelectCommand As New SqlCommand
        Private MyDataSet As New DataSet("MyNewDataSet")
        Private DataLength As Integer
        Private TotalStationNum As Integer

     
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not IsPostBack Then
                Try
                    Dim myThread As Thread
                    myThread = New Thread(New ThreadStart(AddressOf StartListenForConnection))
                    myThread.Name = "myThread"
                    myThread.Start()

                Catch ex As Exception
                    MsgBox("localServer_PageLoad: " & ex.Message)
                End Try
            End If
        End Sub
        Private Sub StartListenForConnection()
            Dim intPort As Integer = 8490
            Dim myTcpListener As TcpListener
            myTcpListener = New TcpListener(IPAddress.Any, intPort)
            Try
                myTcpListener.Start()

                While (True)
                    If myTcpListener.Pending Then
                        Dim mySocketThread As SocketThread
                        Dim MySocket As Socket = myTcpListener.AcceptSocket
                        mySocketThread = New SocketThread
                        mySocketThread.Start(MySocket)
                    End If
                    Thread.Sleep(100)
                End While


            Catch ex As SocketException
                MsgBox("localServer_StartListenForConnection_SocketException: " & ex.Message)
            Catch ex As Threading.ThreadAbortException
                MsgBox("localServer_StartListenForConnection_ThreadAbortException: " & ex.Message)
            Catch ex As Exception
                MsgBox("localServer_StartListenForConnection: " & ex.Message)
            End Try


        End Sub
    ...............
    主页面上还有dropdownlist,在dropdownlist的SelectedIndexChanged事件时打开新页面,同时原页面保留,用的语句是:
    If ddlDataAndPic.SelectedValue = 1 Then
                Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "openNew", " <script language='javascript'>window.open('TotalConsum.aspx') </script>")
    end if

    新页面只做些查库显示数据之类的事情,别无它用,但是发现,在新页面打开后,如果对新打开的页面不进行任何操作,则没什么影响,但是一旦操作了,点按钮啊,查库啊之类的就会终止我的myThread线程,是在  Catch ex As Threading.ThreadAbortException
    的地方出现异常,而且操作时间很随机,有时候长,又时候短。

    我觉得新打开的页面对原页面没什么影响吧,但是这是怎么回事呢?
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • CSJ04
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-23 15:34:471楼 得分:0
    用Request吧~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mvpme82
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-23 16:09:312楼 得分:0
    恳请各位大大指点迷津,楼上的大大,具体怎么写啊?我试了好多打开新页面的方法,这个能打开就不错了~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ASP_lover
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-23 16:13:153楼 得分:0
    该回复于2008-08-24 00:21:40被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cat_hsfz
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-23 19:24:484楼 得分:0
    你贴的代码和“打开新页面”有什么关系?我只看到你开了一个新的Thread,然后监听8490端口。我只能告诉你,这样做是没用的,你开了新的Thread之后页面处理过程会继续往下走,不会管你新开的Thread,然后页面执行完了你新开的Thread就不知道去哪了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hy_lihuan
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-23 20:27:455楼 得分:0
    你这个线程没用的,你还不如使用定时去执行不是更好?最简单的放一个看不见的iframe,定时刷新就好了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mvpme82
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-23 21:29:116楼 得分:0
    对cat_hsfz 的回复:我也认为是没任何关系,可是为什么在操作新开的页面的时候就是会触发myThread进程的强制中断呢?是不是在新打开页面的时候原页面由于向服务器提交postback而刷新,导致进程终结?但是为什么会总发生在新页面操作了好多下之后呢?倒是又时候会在新页面一打开就捕获这个强制结束进程的异常,但占的比例很少,为什么呢?


    对hy_lihuan 的回复:这个线程的目的是让它来控制StartListenForConnection() 中的循环监听,而不希望页面一直卡在监听那,因为还有其他事情要做。
    另外您提到的定时执行是什么意思呢?

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jack20080808
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-23 21:44:037楼 得分:0
    引用 5 楼 hy_lihuan 的回复:
    你这个线程没用的,你还不如使用定时去执行不是更好?最简单的放一个看不见的iframe,定时刷新就好了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mvpme82
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-25 09:31:418楼 得分:0
    iframe我试了,我把另外的能触发新窗口打开页面的东西放在了一个新建的网页上,然后发现每次触发新打开页面,对原页面的进程还是有影响,请问大家怎么回事啊?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lee0100317
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-25 22:29:379楼 得分:0
    不要用response.write
    用this.Page.RegisterClientScriptBlock(null, @" <script>window.open('" + "Query_details.aspx?cid=" + GridView1.DataKeys[Convert.ToInt32(e.CommandArgument.ToString())].Value.ToString() + "','') </script>");
     
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved