Tag: windows store apps

同步等待asynchronous操作,为什么Wait()在这里冻结程序

前言 :我正在寻找一个解释,而不仅仅是一个解决scheme。 我已经知道解决scheme。 尽pipe花了几天的时间研究有关基于任务的asynchronous模式(TAP)的asynchronous和等待的MSDN文章,但我仍然对某些更精细的细节感到困惑。 我正在为Windowsapp store应用程序编写logging器,并且要支持asynchronous和同步logging。 asynchronous方法遵循TAP,同步的方法应该隐藏所有这些,并且像普通的方法一样工作。 这是asynchronouslogging的核心方法: private async Task WriteToLogAsync(string text) { StorageFolder folder = ApplicationData.Current.LocalFolder; StorageFile file = await folder.CreateFileAsync("log.log", CreationCollisionOption.OpenIfExists); await FileIO.AppendTextAsync(file, text, Windows.Storage.Streams.UnicodeEncoding.Utf8); } 现在相应的同步方法… 版本1 : private void WriteToLog(string text) { Task task = WriteToLogAsync(text); task.Wait(); } 这看起来是正确的,但它不起作用。 整个程序永远冻结。 版本2 : 嗯..也许任务没有开始? private void WriteToLog(string text) { Task task […]

XAML网格可见性转换?

我有一个可见性绑定到我的viewmodel属性的网格。 这一切工作正常 – 网格出现/消失正确。 我的问题是,我怎样才能应用一个转换,而不是立即从屏幕上消失,网格内容滑入UI的边缘? 当可见时,应该再次滑出。 <Grid Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" Margin="30,30,0,30" Visibility="{Binding IsSearchEnabled, Converter={StaticResource visibilityConverter}}"> <Grid.RowDefinitions> <RowDefinition Height="60"></RowDefinition> <RowDefinition Height="*"></RowDefinition> </Grid.RowDefinitions> …

是否有可能等待一个事件,而不是另一个asynchronous方法?

在我的C#/ XAML metro应用程序中,有一个button可以启动长时间运行的程序。 所以,build议,我使用asynchronous/等待,以确保UI线程不会被阻止: private async void Button_Click_1(object sender, RoutedEventArgs e) { await GetResults(); } private async Task GetResults() { // Do lot of complex stuff that takes a long time // (eg contact some web services) … } 偶尔,GetResults内发生的事情需要额外的用户input才能继续。 为了简单起见,假设用户只需点击一个“继续”button。 我的问题是: 如何暂停执行GetResults,以等待事件 ,如点击另一个button? 这是一个丑陋的方式来实现我正在寻找:继续的事件处理程序“button设置一个标志… private bool _continue = false; private void buttonContinue_Click(object sender, RoutedEventArgs […]

如何使用MVVMLight SimpleIoc?

我正在修改我的软件Messenger.Default(…)位混乱。 有没有任何备忘单知道MVVMLight SimpleIoc使用(而不是一般的IoC描述)?