如何控制BeginInvoke的状态?

发布于 2024-12-07 20:55:48 字数 445 浏览 1 评论 0原文

我有一个如下的功能。

private void AddPrice(String value)
{
Delegate del=new Action<String>(AddToCollection);
this.Dispatcher.BeginInvoke(del,DipatcherPriority.Background,value);
}

在 AddToCollection 方法中,该值将被添加到 Observable Collection 中。

“AddPrice”函数将根据用户输入被调用(例如100次、200次、300次)。

Observable集合的最大数量是150。如果达到150,我必须向用户弹出消息框,并且需要取消添加值。但是,如果该函数被调用 200 次,则消息框将显示 BeginInvoke 的 50 次 bse。我该如何修改这个?谢谢。

I have a function as below.

private void AddPrice(String value)
{
Delegate del=new Action<String>(AddToCollection);
this.Dispatcher.BeginInvoke(del,DipatcherPriority.Background,value);
}

In AddToCollection method, the value will be added to Observable Collection.

"AddPrice" function will be called based on user input(Eg. 100 times, 200 times, 300 times).

the maximum count of Observable collection is 150. If it reaches 150, I have to pop up Messagebox to user and need to cancle adding values. But, If the function is called 200 times, the messagebox is showing 50 times bse of BeginInvoke. How can I modify this? thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

昇り龍 2024-12-14 20:55:48

您有两个选择:

  1. 一旦用户取消添加值,设置一些标志,并在此之后忽略 AddToCollection 调用。
  2. 将 BeginInvoke 替换为 Invoke,并在取消添加时返回 false。返回 false 时停止调用 Invoke。

因此,您可以在接收方或发送方停止此过程。

You have two options:

  1. Set some flag once user cancels adding values, and ignore AddToCollection calls after this.
  2. Replace BeginInvoke with Invoke and return false when adding is canceled. Stop calling Invoke when it returns false.

So, you can stop this process on receiver or on the sender side.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文