我移植了一些自定义.NET流到WinRT的。 语言是C#。
有IAsyncOperationWithProgress的一些示例实现? 由于方法ReadAsync,WriteAsync从Windows.Storage.Streams需要它们。 自定义的WinRT流的实现也受到了欢迎。
我发现使用create_async一些C的例子,但我要做到这一点在C#中,并在新城框架,我无法找到create_async。
提前致谢
我移植了一些自定义.NET流到WinRT的。 语言是C#。
有IAsyncOperationWithProgress的一些示例实现? 由于方法ReadAsync,WriteAsync从Windows.Storage.Streams需要它们。 自定义的WinRT流的实现也受到了欢迎。
我发现使用create_async一些C的例子,但我要做到这一点在C#中,并在新城框架,我无法找到create_async。
提前致谢
对于C#,你应该检查出的异步编程这个//建立通话 。
如果您使用的高级别C ++,你应该看看这个文章,了解如何在PPL做异步操作。
如果您需要实现从低级别C ++自己的异步操作,你应该看看WRL :: AsyncBase类。
下面是一个使用IAsyncOperationWithProgress显示编程安装一个XAP文件的进度的例子。 我是很新,Win8的发展,不知道这是否是完全地道。
注意Dispatcher.BeginInvoke马歇尔进度回到UI线程。 希望能帮助到你:
private async void InstallApp(string name, Uri uri)
{
try
{
StatusTextBlock.Text = "Installing app";
var installTask = InstallationManager.AddPackageAsync(name, uri);
installTask.Progress = (installResult, progress) => Dispatcher.BeginInvoke(() =>
{
StatusTextBlock.Text = "Progress: " + progress;
});
var result = await installTask;
StatusTextBlock.Text = "Done: " + result.InstallState.ToString();
}
catch (Exception ex)
{
StatusTextBlock.Text = "Failed to install: " + ex.Message;
}
}