小编c0D*_*g1c的帖子

Automapper返回一个空集合,我想要一个null

public class Person
{
   Name { get; set; }
   IEnumerable<Address> Addresses { get; set; }
}

public class PersonModel
{
   Name { get; set; }
   IEnumerable<AddressModel> Addresses { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果我映射PersonPersonModel这样:

Mapper.DynamicMap<Person, PersonModel>(person);
Run Code Online (Sandbox Code Playgroud)

如果Addresses属性on Person为null,则它们将映射PersonModel为空Enumerable而不是null.

如何获得PersonModelnull Addresses而不是空Enumerable

.net c# automapper

18
推荐指数
3
解决办法
6656
查看次数

如何在Windows应用商店应用中打印WebView内容?

我有一个Metro应用程序,我正在尝试打印WebView控件的内容.使用MSDN Print Sample作为我的源参考.我简单地改变XAMLprintableArea,如下所示:

    <RichTextBlock>
        <Paragraph>
            <InlineUIContainer>
                <WebView Width="800" Height="2000" Source="http://www.stackoverflow.com"/>
            </InlineUIContainer>
        </Paragraph>
    </RichTextBlock>
Run Code Online (Sandbox Code Playgroud)

这部分起作用.问题是Visible指定尺寸的区域是Printed,即可以滚动的区域不打印,也不会在PrintPreview中显示为多页.

我几乎在那里,希望得到一些帮助,让它按预期工作.

我没有在任何地方找到任何样本,这解决了这个具体问题.

我甚至在这里尝试过这些解决方案:http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/5edcb239-7a5b-49f7-87e3-e5a253b809c4

我不是第一个遇到相同/类似问题的人:http: //social.msdn.microsoft.com/Search/en-US/?Refinement = 112&query = print%20webview #refinementChanges = 180&pageNumber = 1&showMore = false

愿意为能解决这个问题的人提供100分的赏金.非常感谢演练,示例代码或模拟项目作为解决方案.

c# microsoft-metro windows-runtime .net-4.5 winrt-xaml

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

如何等待Linq查询中的方法

试图awaitLINQ查询中使用关键字,我得到这个:

'await'运算符只能用在初始'from'子句的第一个集合表达式中的查询表达式中,或者用在'join'子句的集合表达式中

示例代码:

var data = (from id in ids
            let d = await LoadDataAsync(id)
            select d);
Run Code Online (Sandbox Code Playgroud)

是不可能等待LINQ查询中的某些内容,还是需要以不同的方式构建它?

linq async-await c#-5.0 windows-runtime winrt-async

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

WPF实时多线程股票交易应用程序

我正在WPF中构建一个实时多线程应用程序,但我在更新UI时遇到了困难.

我有一个后台工作线程,其中包含确定要发送到市场的交易的逻辑.当有效交易发送到市场时,我通过主应用程序窗口中的事件接收这些交易的状态更新.我有其他活动,我收到实时价格更新.

通过这些活动,我更新了UI.现在看来,我在整个应用程序中如此迅速地接收事件,UI无法跟上接收事件的速度 - 导致UI缓慢更新或根本不更新.基本上UI冻结了.在所有事件都被触发后,UI再次缓慢响应.一旦完全响应,UI就会显示我期待的数据.

我的问题是,如何在接收事件的同时实时更新UI?我一直在努力解决这个问题,所以任何帮助都会受到赞赏.

提前致谢!

wpf user-interface multithreading refresh real-time

13
推荐指数
2
解决办法
4748
查看次数

如何使用ConcurrentDictionary,INotifyCollectionChanged,INotifyPropertyChanged创建自定义可观察集合

我正在尝试创建一个ObservableConcurrentDictionary.此对象将用于多线程应用程序,它的数据用于通过控件ItemsSource属性填充控件.

这是我提出的实现:

public sealed class ObservableConcurrentDictionary<TKey, TValue> : ConcurrentDictionary<TKey, TValue>, INotifyCollectionChanged, INotifyPropertyChanged
{
    #region Constructors

    public ObservableConcurrentDictionary()
        : base()
    { 

    }

    public ObservableConcurrentDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection)
        : base(collection)
    { 

    }


    public ObservableConcurrentDictionary(IEqualityComparer<TKey> comparer)
        : base(comparer)
    { 

    }


    public ObservableConcurrentDictionary(int concurrencyLevel, int capacity)
        : base(concurrencyLevel, capacity)
    { 

    }


    public ObservableConcurrentDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey> comparer)
        : base(collection, comparer)
    { 

    }


    public ObservableConcurrentDictionary(int concurrencyLevel, int capacity, IEqualityComparer<TKey> comparer)
        : base(concurrencyLevel, capacity, comparer)
    { 

    }

    public ObservableConcurrentDictionary(int concurrencyLevel, IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey> comparer)
        : base(concurrencyLevel, …
Run Code Online (Sandbox Code Playgroud)

.net wpf inotifycollectionchanged inotifypropertychanged interface-implementation

8
推荐指数
2
解决办法
5205
查看次数

确定什么是阻止UI线程

我正在开发一个相当大的.NET WPF实时应用程序.该应用程序运行良好,正如预期的那样,除了一个大问题 - UI更新很慢.

这个应用程序是高度事件驱动的,有各种各样的事件引发 - 通过这些事件UI更新.

这些事件中的一个或多个阻止UI立即显示.完成所有工作后,UI会显示预期结果.

有没有办法确定哪个事件处理程序导致瓶颈?

任何帮助,将不胜感激.

.net wpf user-interface multithreading block

7
推荐指数
3
解决办法
6241
查看次数

C#应用程序 - 降低CPU使用率

我有一个多线程C#应用程序,其中核心逻辑位于Timer.Elapsed事件处理程序中.事件处理程序包含2个for循环,最多执行n * n = 5 * 5 = 25 times.

该应用程序在我的PC上运行良好.我VS 2010 Profiler针对应用程序运行,CPU使用率平均为20%.

该公司的测试人员说,在他的电脑上,他的电脑上的这个数字会上升到50%100%之间.这导致了他的性能问题.

  • 有什么办法可以解决这个问题吗?
  • 高CPU使用率究竟意味着什么?
  • 这会影响他的电脑吗?
  • 是否可以告诉应用程序仅使用XCPU的数量?

任何帮助,将不胜感激.

c# performance for-loop cpu-usage

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

如何更新我的API以使用async关键字而不使用等待所有调用者

我正在尝试将一些TcpClient相关代码移植到.net 4.5,使用StreamSocketDataReader替代.

我有一个名为的函数ReadLine(),它在任何地方都使用.通过DataReaderLoadAsync()此代码的body()中使用,我的方法被强制用async关键字标记.

连锁反应如下:现在我有数百个地方需要添加async到调用方法并应用等待基础async方法调用.

这引出了我的下一个问题...是否有一种简单的方法来包装,ReadLine()以便调用方法不知道它是一个异步方法,所以我不必更改我的其余代码?

另外......我经常在一个循环中使用这个方法调用,来自多个地方.如果现在标记了这些方法async,我恐怕我可能会在不应该的时候从数据流中读取数据,这将导致各种恶梦.这是一个问题还是我想得太远了?

.net c# async-await .net-4.5

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

Combobox改变高亮颜色winRT(地铁应用程序)

我想在winRT(Windows应用商店应用程序)中更改组合框的颜色.

看起来像这样.我想用紫色代替.

一种奇怪的颜色

我试过了:

<ComboBox>
    <ComboBox.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}">Red</SolidColorBrush>
    </ComboBox.Resources>
    <ComboBoxItem>One</ComboBoxItem>
    <ComboBoxItem>Two</ComboBoxItem>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为x:静态不再存在于Windows应用程序中,如果我使用StaticResource,则资源"System.HighlightBrushKey"不存在.

谢谢

windows combobox colors winrt-xaml

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

Metro App FileIO.WriteTextAsync多线程

我有一个从多个线程经常调用的方法.它涉及使用写入磁盘await FileIO.WriteTextAsync.从单个线程调用它时工作正常,但是一旦我开始在多个线程中执行此操作,我会收到此错误:

The process cannot access the file because it is being used by another process.
Run Code Online (Sandbox Code Playgroud)

我知道错误意味着什么,但我不知道如何解决它.通常,我会创建一个lock(object)语句,以确保一次只有一个线程访问该文件.但是,这是一个异步方法,因此我不能awaitlock(object)语句的主体中使用运算符.

请告知如何处理此方案.

locking windows-runtime .net-4.5 winrt-async

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