private void toolStripButton2_Click(object sender, EventArgs e) { openFileOptions ofo = new openFileOptions(); if (ofo.ShowDialog() == DialogResult.OK) { threadStartParms tsp = new threadStartParms(); tsp.filename = ofo.FileName; tsp.pdbfilename = ofo.SymbolFileName; tsp.throttleTime = (uint)ofo.ThrottleTime; Thread clientThread = new Thread(new ParameterizedThreadStart(fileLoadThread)); clientThread.Start(tsp); stopProcessButton.Enabled = true; toolStripButton2.Enabled = false; toolStripButton4.Enabled = false; if (mTCPClient != null) { mTCPClient.stopListener(); mTCPClient = null; } } }
//============================================================================ // fileLoadThread //============================================================================ private void fileLoadThread(object obj) { threadStartParms parms = (threadStartParms)obj; string filename = parms.filename; string pdbfilename = parms.pdbfilename; //open the file, and inact the log stream FileStream fs = new FileStream(filename, FileMode.Open); BinaryReader br = new BinaryReader(fs); AllocLogStream.processBinaryStream(br, pdbfilename, parms.throttleTime); fs.Close(); ThreadSafeCallbackList.MessagePacket pak = new ThreadSafeCallbackList.MessagePacket(); pak.mCallback = this.onStopPressed; pak.mDataObject = null; pak.mMessageID = "stopped"; mMessageCallbackList.enqueueMessage(pak); }