C#程序突然自动关闭
C#的一个小程序,在开发环境中测试不会突然关闭,但是一旦以.EXE运行就会突然关闭,不是隐藏起来而是完全关闭了,搞不懂为什么会这样,咋处理,如何去排除错误,请高手指点,谢谢。以下是这个的代码:
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 _DataBase;
namespace ReadUid
{
public partial class Form1 : Form
{
delegate void HandleInterfaceDataReceived(string readData);
HandleInterfaceDataReceived dataReceived;
private Thread _GetDataThread;
byte[] serial = new byte[4];
byte status = 0x01;
string UID = "", oldUID = "";
_DataCtrl DC;
public Form1()
{
InitializeComponent();
dataReceived = new HandleInterfaceDataReceived(dispData);
}
public string dis_package(byte[] reb)
{
string temp = "";
foreach (byte b in reb)
{
temp += b.ToString("X2");
}
return Convert.ToUInt32(temp, 16).ToString();
}
private string getFullPath()
{
return System.Reflection.Assembly.GetCallingAssembly().GetName().CodeBase
}
private string getAppDir()
{
string fullPath = getFullPath();
return System.IO.Path.GetDirectoryName(fullPath);
}
private void Form1_Load(object sender, EventArgs e)
{
DC = new _DataCtrl("ole", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + getAppDir().Replace("file:\\", "") + "\\db.accdb;");
DC.checkConn();
if (_GetDataThread == null)
{
_GetDataThread = new Thread(new ThreadStart(ReadUid));
}
_GetDataThread.Start();
richTextBox1.AppendText("初始化程序成功!\r");
}
private void ReadUid()
{
while (true)
{
status = ReaderLib.piccrequest(serial);
if (status == 0)
{
UID = dis_package(serial);
if (UID != oldUID)
{
oldUID = UID;
Invoke(dataReceived, UID
}
}
else
{
oldUID = "";
}
Thread.Sleep(200);
}
} --------------------编程问答-------------------- 编译运行一下肯定是 报错了 但是,net没有弹出错误提示 --------------------编程问答-------------------- 逐步移除代码,进行测试。。。。。。。。。。。 --------------------编程问答-------------------- 其实就是程序抛出了未捕获的错误,注册AppDomain.CurrentDomain.UnhandledException事件可以看到抛出了什么异常 --------------------编程问答-------------------- 小手一抖 --------------------编程问答-------------------- 最有可能就是ReadUid方法里抛出了异常,因为在窗口线程里抛出的异常不会导致程序退出,只有自己建的线程才会。 --------------------编程问答-------------------- 数据库连接正常? --------------------编程问答-------------------- 调试一下,原来报错的地方,会出现中断,就看出来问题了 --------------------编程问答-------------------- 程序出现致命错误~逐步调试 --------------------编程问答-------------------- 调试是没有报错的,数据库连接正常的 --------------------编程问答-------------------- http://blog.csdn.net/lazyleland/article/details/6524041 --------------------编程问答-------------------- 有异常没有捕获 --------------------编程问答-------------------- 谢谢各位的提示,观察了两周都没有再现,可能是环境的问题,刚好那时用了360的注册表瘦身之后就出现这个问题了,注册表还原后就没出现了 --------------------编程问答-------------------- 楼主解决了,应该结贴了吧
补充:.NET技术 , C#