详细解释下段代码,小弟不胜感激 private void MyReceiveCompleted(Object source, ReceiveCompletedEventArgs asyncResult)
{
try
{
MessageQueue mq = (MessageQueue)source;
System.Messaging.Message ms = mq.EndReceive(asyncResult.AsyncResult);
listView1.Invoke(new EventHandler(ListViewEvent), new object[] { ms.Body, EventArgs.Empty });
mq.BeginReceive(); MessageQueue mq = (MessageQueue)source;
{
try
{
MessageQueue mq = (MessageQueue)source;
System.Messaging.Message ms = mq.EndReceive(asyncResult.AsyncResult);
listView1.Invoke(new EventHandler(ListViewEvent), new object[] { ms.Body, EventArgs.Empty });
mq.BeginReceive(); MessageQueue mq = (MessageQueue)source;
创建队列,赋值
搜索下消息队列的简单说明就是了注意记得结贴
StateObject state = (StateObject) ar.AsyncState;
Socket handler = state.WorkSocket; // Read data from the client socket.
int read = handler.EndReceive(ar); // Data was read from the client socket.
if (read > 0) {
state.sb.Append(Encoding.ASCII.GetString(state.buffer,0,read));
handler.BeginReceive(state.buffer,0,StateObject.BufferSize, 0,
new AsyncCallback(readCallback), state);
} else {
if (state.sb.Length > 1) {
// All the data has been read from the client;
// display it on the console.
string content = state.sb.ToString();
Console.WriteLine("Read {0} bytes from socket.\n Data : {1}",
content.Length, content);
}
handler.Close();
}
} 这是MSDN的例子,楼主看看吧,都是一样的
{
try
{
MessageQueue mq = (MessageQueue)source;//实例化一个mq对象,并让他等于之前传递进来的source对象,有个强制转换过程
System.Messaging.Message ms = mq.EndReceive(asyncResult.AsyncResult);//EndReceive会在BeginReceive掉用完毕后被执行.
listView1.Invoke(new EventHandler(ListViewEvent), new object[] { ms.Body, EventArgs.Empty });//这是一个安全访问控件的操作,也就是异步访问控件,ListViewEvent是一个时间函数. mq.BeginReceive();
}
catch
{
}
}