저는 C#의 초보자입니다. 다른 클래스에서 실행되는 스레드에서 WPF의 텍스트 상자를 업데이트하는 동안 문제가 있습니다.예외 "형식 'System.Object []'의 개체를 형식으로 변환 할 수 없습니다.
내 예외입니다 : 유형의
개체 '은 System.Object []는'여기
형태로 내 코드 형식으로 변환 할 수 없습니다
public void UpdateUserOnline(userOnlineClass message)
{
if(onLineTextbox.Dispatcher.CheckAccess())
{
// The calling thread owns the dispatcher, and hence the UI element
for (int i = 0; i < message.user.Length; i++)
{
// this.Dispatcher.Invoke(Action)
onLineTextbox.AppendText("•" + message.user + "\r\n");
onLineTextbox.AppendText(" ->" + message.status + "\r\n");
// txtDestination.Items.Add(message.user[i]);
}
}
else
{
// Invokation required
onLineTextbox.Dispatcher.Invoke(DispatcherPriority.Normal,new UpdateUserOnlineCallback(UpdateUserOnline), new Object[] { message });
}
}
을 그리고 이 코드는 내 Thread 클래스의 코드 부분입니다.
thrMessaging = new Thread(new ThreadStart(ReceiveMessages));
thrMessaging.Start();
private void ReceiveMessages()
{
Response = null;
while (chatClient.Connected)
{
if (strm.DataAvailable)
{
Response = (commandClass)reciveFormatter.Deserialize(strm);
processMessage(Response);
//procProcessMessageCallback(processMessage), new object[] { Response });
//ProcessMessageCallback proccess = new ProcessMessageCallback(processMessage(Response));
}
}
}
private void processMessage(commandClass message)
{
/*
if (message.money != null)
{
UpdateUserRanking((userRankingClass)message.money);
}
*/
if (message.online != null)
{
waitinglist.UpdateUserOnline((userOnlineClass)message.online);
}
}
은 무엇 선이 예외를 던지고있다? – abatishchev
디버깅을 시도하여 문제의 원인이되는 행을 찾으십시오. 오류 메시지가 불완전하다고 생각합니다. ... –
@abatishchev 여기 onLineTextbox.Dispatcher.Invoke (DispatcherPriority.Normal, 새 UpdateUserOnlineCallback (UpdateUserOnline), 새 Object [] { 메시지 }); –