我正在使用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%.如果用户具有少量处理器核心,则这将是非常不足的.
我的问题类似于从现有数组中获取子数组,尽管在我的情况下,一个不同的概念非常重要 - 我不能使用内存复制.
假设我有X10000个元素的数组,我需要Y包含9000个元素的数组,X从X索引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#中实现这一目标?
有没有办法使用的方式Google AdMob在Windows 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 AdMob的Windows 10 Universal Apps?
在Universal Windows 10 C#/ Xaml应用程序中,当我通过Alt + F4 OnSuspending事件关闭我的应用程序时被触发.虽然,当我打电话时Application.Current.Exit()并非如此,尽管文档说明只要应用程序即将被终止,就会触发此事件.
为什么会这样?它看起来像不一致的行为导致我的应用程序中的错误.