私は現在、起動できるように同じネットワーク上のリモートサーバーに接続する必要があるHMIを開発しています。これを行うには、読み込みページをシミュレートできるUWPプラットフォームのスプラッシュ画面機能を使用します。
私の問題は、スプラッシュ画面のロックを解除してアプリケーションを渡すことができるようにするには、サーバーから「開始」という単語を受信する必要があることです。
そのため、この関数をバックグラウンドから直接呼び出そうとしましたが、必然的に機能しません。
スプラッシュ画面を終了する機能:
void DismissedEventHandler(SplashScreen sender, object e)
{
dismissed = true;
}
public void DismissExtendedSplash()
{
rootFrame.Navigate(typeof(MainPage));
Window.Current.Content = rootFrame;
}
void DismissSplashButton_Click(object sender, RoutedEventArgs e)
{
DismissExtendedSplash();
}
SocketActivtyTask:
case SocketActivityTriggerReason.SocketActivity:
var socket = socketInformation.StreamSocket;
DataReader reader = new DataReader(socket.InputStream);
reader.InputStreamOptions = InputStreamOptions.Partial;
await reader.LoadAsync(250);
var dataString = reader.ReadString(reader.UnconsumedBufferLength);
try
{
if (dataString.Equals("Start"))
{
Debug.WriteLine("Lancement OK.");
DismissExtendedSplash();
}
}
catch
{
Debug.WriteLine("Lancement FAIL.");
}
}
どうすればそれを機能させることができますか?
追加の質問、アプリケーションを閉じるときにバックグラウンドタスクをキャンセルする方法は?
あなたの場合、ベストプラクティスとしてBackgroundTaskと呼ばれるものを使用する必要があると思います。これを行うには、最初にアプリケーションにIBackgroundTaskを実装する必要があります。これにより、特定のイベントをトリガーできます。
MSDNリンクhttps://docs.microsoft.com/en-us/windows/uwp/launch-resume/create-and-register-a-background-task
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加