2013-10-06 72 views
0

我有我的更新一个的ObservableCollection方法的ObservableCollection更新而不是另一个

public void UpdateBeat() 
{ 
    SequenceCollection = new ObservableCollection<Sequence>(); 

    Random random = new Random(); 
    int randomNumber = random.Next(0, 100); 

    SequenceCollection.Add(new Sequence(1, 2));    
} 

我从事件发射2种不同的方法 - 从方法1视图更新而不是其他。

//Does not work 
private void BsOnUpdateStep(object sender, EventArgs eventArgs) 
{ 
    Console.WriteLine("BS Update"); 
    UpdateBeat(); 
} 

//Works 
void total_AudioAvailable(object sender, AsioAudioAvailableEventArgs e) 
{ 
    Console.WriteLine("ASIO Written"); 
    UpdateBeat(); 
} 

我不知道这里有什么区别。我唯一能说的是第一种方法比第二种方法更频繁地发射。我无法让第二个人工作。

+0

只是一个随机猜测:有些种类多线程问题?何时以及如何开展活动? – Gigo

+1

我想我们需要更多信息/代码 – Gigo

+0

从音频驱动程序接收音频并在特定时间间隔更新时触发事件。我知道这些事件正在不同的线程上运行。有没有办法处理这与UI更新? – user547794

回答

1

试试这个:

private SequenceCollection = new ObservableCollection<Sequence>(); 
Random random = new Random(); 

public void UpdateBeat() 
{ 
    int randomNumber = random.Next(0, 100); 

    SequenceCollection.Add(new Sequence(1, 2));    
} 

我把Random实例的方法之外太,你应该只实例化这个曾经获得随机数的适当的流。

相关问题