小编Zen*_*gix的帖子

C#.NET可以用于硬实时吗?

鉴于熟悉的.NET形式是在Windows上运行的,而不是实时的操作系统,而且MONO在Linux上运行(标准内核也不是实时O/S).

同样,任何提供垃圾收集的内存分配方案(如"托管".NET),以及任何堆内存方案都会在应用程序的执行行为中引入非确定性的,可能非平凡的延迟.

是否存在备用主机O/S和编码范例的任意组合,其中可以利用C#.NET的所有功能和便利,同时实现可以在严格指定的时间限制内执行代码的指定部分的解决方案?例如启动一个C#方法每10ms至小于1ms的公差,以完成时间仅受方法本身执行的工作确定的?

显然,应用程序必须仔细编写; 时间关键代码必须避免内存分配; 应用程序必须完成所有内存分配等工作,并且在启动硬实时循环后没有其他线程处于活动状态.此外,主机O/S必须支持实时调度.

这是否可以在.NET/MONO框架内实现,或者是否支持.NET运行时,框架和支持它(或兼容的等效)的O/S?

例如:是否可以使用类似NETduino的 C#进行可靠的细粒度(~1ms)机器控制,或者它们是否有限制或需要替代策略用于此类应用?

.net c# real-time

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

如何在Windows Phone中调试C++代码(8)运行时组件或VS 2013中的C++ DLL

对于使用Visual Studio 2013 Pro创建并包含Windows Phone应用程序(C#),Windows Phone运行时组件(C++)和Windows Phone动态链接库(C++)的解决方案,是否可以在运行时调试C++代码组件还是DLL?如果是这样,必须采取什么措施才能启用它?

我创建了一个这样一个项目 - 一个简单的测试应用程序,应用程序调用运行时组件中的代码,然后调用DLL中的代码.我可以验证它是否正常工作,因为我可以在通过运行时组件反馈到应用程序中的C#代码后检查DLL中C++函数的返回值,但我无法让调试器进入运行时组件中实现的方法.虽然我可以在任何代码(C#或C++)上设置断点,但只有C#代码上的断点才会被命中,而在C++代码中设置的断点(运行时组件或DLL)在应用程序中显示为"无符号加载"在调试器下是活动的(就像坐在C#断点上一样).

c# c++ debugging dll windows-phone-8

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

如果网格不在屏幕上,WPF DataGrid ScrollIntoView 显然不会执行任何操作

我在TabItem中有一个 WPF DataGrid。填充网格后,我希望它滚动到底部,因此我在设置ItemsSource后对最后一个项目调用ScrollIntoView当选择包含DataGrid的选项卡(网格在屏幕上)时,这一切都可以正常工作,但如果由于选择了其他选项卡而导致网格不在屏幕上,则ScrollIntoView不会执行任何操作。影响ScrollIntoView是否完成其工作的唯一因素似乎是网格在调用时是否实际在屏幕上。这是已知行为吗?

我尝试调用 UpdateLayout 并使用 Dispatcher.BeginInvoke 来推迟 ScrollIntoView。这些措施都没有任何作用。

是否有一种非 hacky 的方法来确保如果在屏幕外填充网格(如选择另一个选项卡时),则可以确保我可以获得所需的滚动,为 DataGrid 出现在屏幕上时做好准备(例如通过选择其包含选项卡)?我是否需要做一些像检测DataGrid何时可见并执行ScrollIntoView 之类的事情?

c# wpf datagrid

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

等待异步方法,其中完成由事件处理程序发出信号

我正在使用Windows Phone 8中的Contacts对象,在异步方法中调用SearchAysnc.SearchAsync要求处理程序订阅SearchCompleted事件,并通过事件参数之一传递其结果,async方法需要执行其工作(包括调用其他异步方法).

您如何等待事件的异步完成,即事件模式和async/await模式之间的桥接?

我能提出的唯一解决方案是使用EventWaitHandle,在等待的任务中等待它,如下所示:

using System.Threading;


async Task<string> MyMethod()
{
    string result = null;
    Contacts cons = new Contacts();
    EventWaitHandle handle = new EventWaitHandle(false,EventResetMode.ManualReset);
    cons.SearchCompleted += (sender,args) =>
    {
        // I do all my work on the results of the contact search in this handler
        result = SomeOtherSynchronousOperation(args.Results);

        // When I'm done, I release the thread which was waiting for the results
        handle.Set();
    };
    cons.SearchAsync(String.Empty, FilterKind.None, "My Contact");

    // I can't block this thread (or can I?)
    // So, …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading asynchronous

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

Microsoft是否已发布有关从Visual Studio 2013(无MSDN)到2015年的许可证升级的任何信息?

微软已经公布了VS2013 与MSDN的新购买或升级的定价,但我还没有找到任何涉及VS2013升级的信息,这些升级是在没有 MSDN的情况下购买的,例如VS 2013 Professional.

在我的具体情况下,我想从Visual Studio 2013 Professional升级到2015 Professional.我唯一的选择似乎是购买2015年 MSDN,而不考虑我现有的2013年许可证.我忽略了什么吗?

visual-studio

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