从不同的非静态类调用非静态方法
本文关键字:静态类 静态方法 调用 | 更新日期: 2023-09-27 18:32:39
我有主页.cs我有方法public void websocketRequestGetListOfUni()
,然后我有这个类
public class RegisterResponseReceiverRegisterDevice : ResponseReceiver
{
public override void onResponseReceived(byte[] header, byte[] response)
{
RegisterResponse rr = RegisterResponse.ParseFrom(response);
var t = new MainPage();
t.websocketRequestGetListOfUni();
}
public override void onError() { }
}
public void websocketRequestGetListOfUni()
{
IntMessage req = IntMessage.CreateBuilder().SetValue(1).Build();
WebSocketClient.write(3, 7, req, new RegisterResponseReceiverGetListOfUni());
}
我想在类 RegisterResponseReceiverRegisterDevice
中调用方法 websocketRequestGetListOfUni()
,但是当我调用它时,我会得到 var t = new MainPage();
错误
应用程序调用了分配给不同接口的接口 线。
我也尝试使用
this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => mymethoc);
但分歧者不被认可。知道如何调用我的方法吗?
这是主页,以便更好地理解: https://www.dropbox.com/s/oz6qb0naa0u0for/Mainpage.cs.txt
var t = new MainPage();
将实例化页面(包括UI部分(由MainPage构造函数中的Initialise调用实例化)),因此仅为了访问方法而实例化它是一个非常糟糕的主意。我强烈建议您访问您的代码,这样您就不需要这样做了。特别是你应该看看MVVM的父亲。
如果仍要执行此操作,可以使用以下代码在 UI 线程上调度方法:
await CoreApplication.MainView.CoreWindow.RunAsync(CoreDispatcherPriority.Normal, () => mymethoc);