小编xco*_*r37的帖子

Task.Delay的准确性

我正在使用C#/ Xaml开发Windows 10 Universal App,我正在使用等待Task.Delay(delayInMilliseconds)来暂停给定时间的方法.我的场景有点实时,因此它对时间变化非常敏感,我需要确保当我暂停一个方法让我们说8毫秒时,它会暂停8毫秒.我注意到**Task.Delay**暂停方法的实际时间跨度与传递的延迟参数不同,1到30毫秒,每次调用的"偏差"长度不同.所以,当我想睡8毫秒时,我的系统会睡眠9到39毫秒,这完全破坏了我的情景.所以,我的问题是什么是替换**Task.Delay**并获得良好精度的最佳方法?目前我使用这种方法:

 public static void Delay1(int delay)
    {
        long mt = delay * TimeSpan.TicksPerMillisecond;
        Stopwatch s = Stopwatch.StarNew();
        while (true)
        {
            if (s.Elapsed.TotalMilliseconds > delay)
            {
                return;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但它猜测它消耗了大量资源,即处理器核心的100%.如果用户具有少量处理器核心,则这将是非常不足的.

task-parallel-library windows-runtime win-universal-app

7
推荐指数
1
解决办法
2686
查看次数

如何从C#中的现有数组中获取子数组而不进行复制?

我的问题类似于从现有数组中获取子数组,尽管在我的情况下,一个不同的概念非常重要 - 我不能使用内存复制.

假设我有X10000个元素的数组,我需要Y包含9000个元素的数组,XX索引500开始.

但是我不想将部分内容复制X到新数组中Y,所以我不想使用Array.Copy,Array.Clone,System.Block.Copy,IEnumerables等.我想Y引用X - Y[0]它实际上是X[500],Y[1]对应X[501],...,Y[9000]X[9500].

因此,例如改变值X[100]将同时改变值Y[600].我怎样才能在C#中实现这一目标?

c# arrays

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

Google Admob和WIndows 10 Universal Apps

有没有办法使用的方式Google AdMobWindows 10 Universal Apps

根据我的研究没有,但也许有人知道我不知道的事情.我尝试过使用本教程https://developers.google.com/admob/wp/quick-start,但似乎只适用于Windows Phone 8(如此处所述).

在微软广告中介描述中,公开表示AdMob不支持 - https://msdn.microsoft.com/en-us/library/windows/apps/xaml/mt219688.aspx.

那么,有没有希望利用Google AdMobWindows 10 Universal Apps

admob win-universal-app

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

Application.Current.Exit()和OnSuspendingEvent

在Universal Windows 10 C#/ Xaml应用程序中,当我通过Alt + F4 OnSuspending事件关闭我的应用程序时被触发.虽然,当我打电话时Application.Current.Exit()并非如此,尽管文档说明只要应用程序即将被终止,就会触发此事件.

为什么会这样?它看起来像不一致的行为导致我的应用程序中的错误.

win-universal-app uwp

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