小编Rel*_*mes的帖子

如何等待IAsyncAction?

在Windows应用商店应用中,C++(C#虽然类似),做类似的事情

IAsyncAction^ Action = CurrentAppSimulator::ReloadSimulatorAsync(proxyFile);
create_task( Action ).then([this]()
{
}.wait();
Run Code Online (Sandbox Code Playgroud)

导致未处理的异常.通常是

Microsoft C++ exception: Concurrency::invalid_operation at memory location 0x0531eb58
Run Code Online (Sandbox Code Playgroud)

在尝试使用它之前,我需要完成该操作以获取我的In App Purchase信息.这里奇怪的是除了IAsyncAction之外的任何其他东西都等待.IAsyncOperation和IAsyncOperationWithProgress工作正常,但是这个?异常然后崩溃.

说实话,我不知道IAsyncOperation和IAsyncAction之间有什么区别,它们看起来和我类似.

更新:

通过分析此页面http://msdn.microsoft.com/en-us/library/vstudio/hh750082.aspx,您可以发现IAsyncAction只是一个没有返回类型的IAsyncOperation.但是,您可以看到大多数IAsyncAction-s都是可以等待的.但真正的问题是某些Windows函数只是想在特定线程上执行(出于某种原因).ReloadSimulatorAsync就是一个很好的例子.

使用这样的代码:

void WaitForAsync( IAsyncAction ^A )
{   
    while(A->Status == AsyncStatus::Started)
    {
        std::chrono::milliseconds milis( 1 );
        std::this_thread::sleep_for( milis );
    }   
    AsyncStatus S = A->Status;  
}
Run Code Online (Sandbox Code Playgroud)

导致无限循环.如果调用其他功能,它实际上是有效的.这里的问题是,如果一切都是异步,为什么需要在特定线程上执行任务?它应该是RunOn(Main/UI)Thread或类似的而不是Async.

求助,见答案;

windows-runtime winrt-async

11
推荐指数
2
解决办法
1万
查看次数

FLAG_TRANSLUCENT_NAVIGATION在横向模式下不可用?

此问题类似于检查半透明导航是否可用但不完全可用.我有一个使用CyanogenMod 11或Android 4.4等效的Nexus 4,任何使用FLAG_TRANSLUCENT_NAVIGATION以横向模式运行的应用程序都不具备系统UI上的半透明效果,如肖像模式.

同样的问题可以在Nexus 5上重现,因为我没有在横向模式下使用半透明按钮看到为Android 4.4构建的任何谷歌应用程序.

这是我正在使用的代码

int API_LEVEL =  android.os.Build.VERSION.SDK_INT;

if (API_LEVEL >= 19)
{
    getWindow().addFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION );     
}
Run Code Online (Sandbox Code Playgroud)

当窗口表面变大(并且不可用)时,没有半透明性.

所以问题是,我是否必须做任何额外的事情以使其在横向模式下工作?或者这是Android的错误?

android android-4.4-kitkat

9
推荐指数
1
解决办法
4582
查看次数

Windows应用商店应用Shader型号4_0_level_9_3和VPOS

要为Windows应用商店应用(和Windows Phone 8)Shader模型4_0_level_9_3构建着色器,您需要使用vs_4_0_level_9_3和ps_4_0_level_9_3.虽然使用专为DirectX 10设计的HLSL语法来说这一切听起来都不错,但我无法使用DirectX 9中的VPOS语义或使用DirectX 10中的SV_POSITION以及像素着色器中的SV_POSITION,所以除了制作另一个之外我该怎么做用于输出剪辑空间中顶点位置的语义?

PS:4_0_level_9_3上的一些着色器吐出"内部错误:level9和d3d10着色器之间的blob内容不匹配",我不知道是什么.可能与我想的驱动程序有一些不一致(我使用的是Nvidia GTX 560 TI),如果您只是使用发布标志(如优化级别3并避免流量控制)编译着色器,我会看到它消失了.

windows hlsl windows-8 windows-phone-8

6
推荐指数
1
解决办法
1217
查看次数

如何在Android中获取屏幕尺寸,包括虚拟按钮?

对于正常使用,您可以使用DisplayMetrics类并获得"可渲染"大小,但我想弄清楚实际的物理屏幕大小,其中包括虚拟按钮高度.

在我的Galaxy Nexus上报告的尺寸无论我尝试的是1196x720,我可以使用什么来获得1280x720的物理尺寸?同样适用于Nexus 7,Nexus 4和Nexus 10设备.

更新:这是我现在使用的最终代码,包括修复:

    //Activity A = this;
    DisplayMetrics displayMetrics = new DisplayMetrics();
    WindowManager wm = (WindowManager) A.getApplicationContext().getSystemService(Context.WINDOW_SERVICE); 
    Display disp = wm.getDefaultDisplay();

    int API_LEVEL =  android.os.Build.VERSION.SDK_INT;
    if (API_LEVEL >= 17)
    {
        disp.getRealMetrics(displayMetrics);
    }
    else
    {
        disp.getMetrics(displayMetrics);
    }

    int Width = displayMetrics.widthPixels;
    int Height = displayMetrics.heightPixels;
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
1
解决办法
5615
查看次数

如何使Xcode中的"用于开发"按钮再次出现?

当我第一次将iOS设备连接到Xcode时,它会显示在"组织者中的设备"下,并显示"魔术"按钮,"用于开发".

当我点击这个并登录我的Apple开发者帐户时,Xcode会创建一个"神奇的"配置文件,让我可以调试设备上的任何应用程序,而无需为该特定应用程序专门创建配置文件.这非常有用.

此配置文件通常在末尾有一个通配符.问题是,即使我删除iPad上的所有配置文件(在设置 - >配置文件下),魔术按钮也不会再出现,因为它知道我已经激活了它.

现在,为了让它再次出现,我有一个选项:重置或更新我的iPad,在术语中删除所有内容.对于这么小的功能来说,这是一个痛苦而漫长的过程.有没有其他方法可以做到这一点?

xcode ios

5
推荐指数
2
解决办法
1万
查看次数

如何手动暂停Android中的活动?

当您按下Android中的后退按钮时,它会调用finish(),并且我希望它被替换为暂停行为,并且我找不到允许您手动触发的文档.

编辑:好的,我猜这需要更多的代码

public boolean onKeyDown(int keyCode, KeyEvent event)
{
    int Action = event.getAction();
    if (Action == KeyEvent.ACTION_DOWN)
    {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK)
        {
         //Default Implementation calls finish();
         //I want to call Pause, which should call onPause and then send my app in the background !

          }
      }
}
Run Code Online (Sandbox Code Playgroud)

我刚试过onBackPressed,至少在Android 4.3上它甚至没有上面的代码.我尝试手动调用onPause()但只是将我的应用程序呈现为无效状态.

android

3
推荐指数
1
解决办法
6633
查看次数