小编Mic*_*ski的帖子

停止与并行中断.对

我很难理解loopState.Stop()loopState.Break().我已阅读MSDN和几篇关于它的帖子,但我仍感到困惑.

我的理解是每个迭代分区器都为线程提供剩余索引来处理和loopState.Stop()停止所有线程并loopState.Break()停止当前线程.

但是让我们考虑以下情况:

Parallel.For(0, 100, (i, loopState) =>
{
    if (i >= 10) 
        loopState.Break();
    Debug.Write(i);
});
Run Code Online (Sandbox Code Playgroud)

对于这个循环,我有结果:

0 25 1 2 3 4 5 6 7 8 9 10 
Run Code Online (Sandbox Code Playgroud)

我不知道为什么在结果中有10个和25个数字.

有人可以帮忙吗?

PS我有i5 520M CPU(2核=> 4个线程)

.net c# loops task-parallel-library

10
推荐指数
3
解决办法
7734
查看次数

WPF设计时错误对象引用未设置为对象的实例

好吧,我厌倦了这个问题.

我正在尝试创建UserControl,我可以从XAML填充其内容.以前我创建了ObservableCollection DependencyProperty.它在运行时工作,但在设计时出现了错误:

你调用的对象是空的.

现在我做了更简单的版本:

public partial class UC : UserControl
{
    public UC()
    {
        Labels = new ObservableCollection<Label>();
        InitializeComponent();

        Labels.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(Labels_CollectionChanged);
    }

    void Labels_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
    {
        foreach (Label uc in e.NewItems)
            Container.Children.Add(uc);
    }

    private ObservableCollection<Label> _lables = new ObservableCollection<Label>();

    public ObservableCollection<Label> Labels
    {
        get { return _lables; }
        set { _lables = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我喜欢使用UserControll的方式

<Window x:Class="WpfApplication1.MainWindow"
    xmlns:gsh="clr-namespace:WpfApplication1"  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid Margin="0,0,0,30">
    <gsh:UC x:Name="uC1">
        <gsh:UC.Labels>
            <Label Content="qwerty1" />
            <Label Content="qwerty2" …
Run Code Online (Sandbox Code Playgroud)

wpf xaml design-time dependency-properties observablecollection

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

将麦克风流保存为mp3或wave

我在Windows Phone设备中录制麦克风的声音.使用Xna.Framework.Audio.Microphone我存储声音MemoryStream.我可以将它保存为PCM格式.然而,将它转换为mp3文件会好得多.如果转换为mp3是不可能的,那么也许有人至少知道如何将其转换为wav.

谢谢你的回答.

mp3 xna microphone wav windows-phone-7

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

为C#制作C++ DLL

我做了一个非常简单的Dll:

extern "C"
{
  __declspec(dllexport) int Try(int v)
  {
    return 10 + v;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我想在我的C#应用​​程序中使用它:

class Program
{
    [DllImport("TestLib.dll")]
    public static extern int Try(int v);

    static void Main(string[] args)
    {
        Console.WriteLine("Wynik: " + Try(20));
        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

它一直在工作,直到我尝试过参数.现在我在运行时遇到以下错误:

调用PInvoke函数'ConsoleApplication2!ConsoleApplication1.Program :: Try'使堆栈失去平衡.这很可能是因为托管PInvoke签名与非托管目标签名不匹配.检查PInvoke签名的调用约定和参数是否与目标非托管签名匹配.

我不知道问题出在哪里.

c# c++ dll

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