请问,线程A中新建了一个对象C,线程B中添加了对象C的引用,如何在线程B中调用C的某个函数,让这个函数在线程A中执行,谢谢!

corn8888 2013-09-12 05:50:18
请问,线程A中新建了一个对象C,线程B中添加了对象C的引用,如何在线程B中调用C的某个函数,让这个函数在线程A中执行,谢谢!
...全文
277 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
corn8888 2013-09-13
  • 打赏
  • 举报
回复
引用 14 楼 wonderfuly 的回复:
用委托 或者 事件 就可以了.
请问如何实现?
游戏人间 2013-09-13
  • 打赏
  • 举报
回复
用委托 或者 事件 就可以了.
yuhaoloen 2013-09-13
  • 打赏
  • 举报
回复
线程间通信的问题 你的线程A就与对象C紧密结合了 你是不是需要把对象C和线程A做成一个对象了... 然后外部调用的时候 向你的对象内部的 任务队列加入一条 任务 线程A执行相关任务 等到线程A没有任务的时候就等待AutoEvent 就可以了 建议你查查线程间通信的问题
corn8888 2013-09-12
  • 打赏
  • 举报
回复
引用 8 楼 caozhy 的回复:
不要你添加控件。让你借鉴这种模式。
哥们,请问哪有 C# 线程间发消息的资料? 谢谢
threenewbee 2013-09-12
  • 打赏
  • 举报
回复
http://www.codeproject.com/Articles/348541/Asynchronous-Thread-Calls-With-Delegates
corn8888 2013-09-12
  • 打赏
  • 举报
回复
请问,通过线程间发消息,实现吗
corn8888 2013-09-12
  • 打赏
  • 举报
回复
引用 8 楼 caozhy 的回复:
不要你添加控件。让你借鉴这种模式。
“借鉴这种模式” 我不知道怎么........ 请问哥们,哪有这方面的资料,或者google啥 谢谢
threenewbee 2013-09-12
  • 打赏
  • 举报
回复
不要你添加控件。让你借鉴这种模式。
corn8888 2013-09-12
  • 打赏
  • 举报
回复
引用 6 楼 caozhy 的回复:
[quote=引用 5 楼 corn8888 的回复:] [quote=引用 4 楼 caozhy 的回复:] [quote=引用 3 楼 corn8888 的回复:] [quote=引用 2 楼 caozhy 的回复:] A向B传一个委托,调用C。B调用这个委托。这样就是A在执行。 经典的例子就是在工作线程中调用Control.(Begin)Invoke更新界面。Control.Invoke在UI线程中执行
请问,在B线程里,调用 委托.Invokenvoke()就是在线程A里运行? [/quote] 是Control.Invoke,不是委托.Invoke 不过你可以用消息机制模仿这一点。[/quote] 我的对象C,不是控件,是普通的对象, 对于你刚才的回复,我是这样理解的,不知对不对? 线程A里,新建一个委托实例C,B线程里调用,C.Invoke(),然后委托就在线程A里运行? 不知对不对?[/quote] 不对。 我让你模仿WinForms的做法,发消息通知。 Control.Invoke的原理是,由调用线程发出消息,并且阻塞运行,UI线程在消息循环中发现这个消息,调用委托执行,执行完成再取消工作线程的阻塞,工作线程继续执行。 Control.BeginInvoke类似,只是异步的。[/quote] 怎么感觉有点别扭,我的对象C不是控件,.........,然后还得添加一控件,才能实现这个功能, 请问有没有 简单、直接 一点的方法 谢谢
threenewbee 2013-09-12
  • 打赏
  • 举报
回复
引用 5 楼 corn8888 的回复:
[quote=引用 4 楼 caozhy 的回复:] [quote=引用 3 楼 corn8888 的回复:] [quote=引用 2 楼 caozhy 的回复:] A向B传一个委托,调用C。B调用这个委托。这样就是A在执行。 经典的例子就是在工作线程中调用Control.(Begin)Invoke更新界面。Control.Invoke在UI线程中执行
请问,在B线程里,调用 委托.Invokenvoke()就是在线程A里运行? [/quote] 是Control.Invoke,不是委托.Invoke 不过你可以用消息机制模仿这一点。[/quote] 我的对象C,不是控件,是普通的对象, 对于你刚才的回复,我是这样理解的,不知对不对? 线程A里,新建一个委托实例C,B线程里调用,C.Invoke(),然后委托就在线程A里运行? 不知对不对?[/quote] 不对。 我让你模仿WinForms的做法,发消息通知。 Control.Invoke的原理是,由调用线程发出消息,并且阻塞运行,UI线程在消息循环中发现这个消息,调用委托执行,执行完成再取消工作线程的阻塞,工作线程继续执行。 Control.BeginInvoke类似,只是异步的。
corn8888 2013-09-12
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
[quote=引用 3 楼 corn8888 的回复:] [quote=引用 2 楼 caozhy 的回复:] A向B传一个委托,调用C。B调用这个委托。这样就是A在执行。 经典的例子就是在工作线程中调用Control.(Begin)Invoke更新界面。Control.Invoke在UI线程中执行
请问,在B线程里,调用 委托.Invokenvoke()就是在线程A里运行? [/quote] 是Control.Invoke,不是委托.Invoke 不过你可以用消息机制模仿这一点。[/quote] 我的对象C,不是控件,是普通的对象, 对于你刚才的回复,我是这样理解的,不知对不对? 线程A里,新建一个委托实例C,B线程里调用,C.Invoke(),然后委托就在线程A里运行? 不知对不对?
threenewbee 2013-09-12
  • 打赏
  • 举报
回复
引用 3 楼 corn8888 的回复:
[quote=引用 2 楼 caozhy 的回复:] A向B传一个委托,调用C。B调用这个委托。这样就是A在执行。 经典的例子就是在工作线程中调用Control.(Begin)Invoke更新界面。Control.Invoke在UI线程中执行
请问,在B线程里,调用 委托.Invokenvoke()就是在线程A里运行? [/quote] 是Control.Invoke,不是委托.Invoke 不过你可以用消息机制模仿这一点。
corn8888 2013-09-12
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
A向B传一个委托,调用C。B调用这个委托。这样就是A在执行。 经典的例子就是在工作线程中调用Control.(Begin)Invoke更新界面。Control.Invoke在UI线程中执行
请问,在B线程里,调用 委托.Invokenvoke()就是在线程A里运行?
threenewbee 2013-09-12
  • 打赏
  • 举报
回复
A向B传一个委托,调用C。B调用这个委托。这样就是A在执行。 经典的例子就是在工作线程中调用Control.(Begin)Invoke更新界面。Control.Invoke在UI线程中执行
真相重于对错 2013-09-12
  • 打赏
  • 举报
回复
事件 ==============
内容概要:本文详细探讨了机组组合优化模型的构建,旨在通过合理安排各类发电机组的启停计划和优化出力分配,实现电力系统在经济性和稳定性上的最佳平衡。文章首先介绍了电力系统的四大主要组件——传统火电机组、风电机组、光伏机组和储能系统的参数及运行特性。接着,围绕最小化系统总运行成本这一目标,设计了优化目标函数,并明确了包括功率平衡约束、机组出力上下限约束、风光发电功率约束、弃风弃光约束、爬坡速率约束、储能系统荷电状态约束、充放电功率约束和充放电互斥约束在内的多项约束条件。最后,文章列出了求解机组组合优化模型所需的关键变量,如传统机组的开停状态、机组出力、启停成本、风电光伏实际出力、弃风弃光比例及储能系统的充放电功率和荷电状态,以实现系统的经济调度和可再生能源的最大化利用。 适合人群:从事电力系统研究、规划和调度工作的工程师和技术人员,以及对电力系统优化感兴趣的科研人员。 使用场景及目标:①帮助电力系统工程师理解不同类型发电机组的特点及其对系统稳定性、经济性和环保性的影响;②为制定合理的电力系统调度策略提供理论依据和技术支持;③促进可再生能源的有效整合,提高电力系统的灵活性和可靠性。 其他说明:本文提供的模型和方法不仅适用于当前的电力系统,也可为未来含高比例可再生能源接入的电力系统提供参考。文涉及的具体数学公式和参数设定为实际应用提供了详细的指导,有助于提升电力系统的运行效率和经济效益。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧