用DOTMSN在网页上显示好友列表而产生的跨线程调用问题
用DOTMSN在网页上显示好友列表而产生的跨线程调用问题
我用DOTMSN来读取我的MSN上的好友列表..用的是WEB方式,代码如下
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DotMSN;
public partial class _Default : System.Web.UI.Page {
protected Messenger messenger;
protected void Page_Load (object sender, EventArgs e) {
}
private void StartMSN(){
messenger = new Messenger();
try{
messenger.ContactOnline += new Messenger.ContactOnlineHandler(ContactOnline);
messenger.ConversationCreated += new Messenger.ConversationCreatedHandler(ConversationCreated);
messenger.SynchronizationCompleted += new Messenger.SynchronizationCompletedHandler(OnSynchronizationCompleted);
messenger.Connect(abc@ddd.com, "xxxxxx");
if (!messenger.Connected) {
Response.Write("无法连接!!!");
return;
}
else {
Response.Write("已经连接!!!");
}
messenger.SynchronizeList();
}
catch (MSNException e) {
this.Label1.Text += "Connecting failed: " + e.ToString();
}
}
protected void Button1_Click (object sender, EventArgs e) {
StartMSN();
}
private void ContactOnline (Messenger sender, ContactEventArgs e) {
}
private void OnSynchronizationCompleted(Messenger sender, EventArgs e) {
foreach (Contact contact in messenger.ReverseList) {
this.Label1.Text += "contact.Mail>> " + contact.Name;
}
messenger.SetStatus(MSNStatus.Online);
}
private void ConversationCreated(Messenger sender, ConversationEventArgs e) {
}
private void ContactJoined(Conversation sender, ContactEventArgs e) {
}
private void ConnectionEstablished(Conversation sender, EventArgs e) {
}
private void ContactTyping(Conversation sender, ContactEventArgs e) {
}
private void FileTransferHandler_FileTransferInvitation(FileTransferHandler sender, FileTransferInvitationEventArgs e) {
}
}
编译是通过的..就是显示不出来列表...而我如果重新定义: private void OnSynchronizationCompleted函数..在函数内部执行联系人列表的数据写入数据库的操作,结果数据库里会有记录....
问题到这就非常明显了...是ASP.NET的跨线程调用问题...但是如何在WEB页里操作的..毕竟PAGE没有Invoke方法啊!!
请高手帮忙..我刚学.NET没多久....

浙公网安备 33010602011771号