★★★快来抢100分★★★:<>第11章NOSYNCH.dpr中GlobalArray从(0,0,0,0....)到(1,3,5,7,9.....)变化的原理是什么?

deak 2001-08-17 04:20:05
...全文
433 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
deak 2001-08-23
  • 打赏
  • 举报
回复
.......
chechy 2001-08-22
  • 打赏
  • 举报
回复
我那里却还是递增。你的Delphi在跟你开玩笑吧。哈哈...

杭州,和你在城市差一个字。
deak 2001-08-22
  • 打赏
  • 举报
回复
我关掉一个线程,只留一个线程,i值还是递减,GlobalArray[i] 却是递增的,真奇怪?!
广州
deak 2001-08-22
  • 打赏
  • 举报
回复
?
deak 2001-08-22
  • 打赏
  • 举报
回复
还有谁调试过的?
i值的变化,是不是递减?
chechy 2001-08-21
  • 打赏
  • 举报
回复
你先说吧。
deak 2001-08-21
  • 打赏
  • 举报
回复
to chechy:thank you,你现在在那个城市?
chechy 2001-08-21
  • 打赏
  • 举报
回复
当然看了,否则怎么说下述观点呢?
“调试线程本来就比较困难,要知道你设的断点有可能是A线程断的,也有可能是B线程断的。
这样你才有可能发现I值不是递增。实际上对于一个线程来说I值一定是递增的。
这两个线程交替没有任何规律,完全随机,所以你每次调试都不太会得到相同结果。 ”
deak 2001-08-21
  • 打赏
  • 举报
回复
那就怪了,我在win2000 server和win98都是这样
你有没有监视i值的变化,是不是递减?
chechy 2001-08-21
  • 打赏
  • 举报
回复
很不幸的告诉你,我恰恰在你说我没有调试的地方设了断点,并且跟踪过了,
我觉得非常正确,我就不明白为什么你的那里为什么会出现递减的情况。
deak 2001-08-21
  • 打赏
  • 举报
回复
to chechy:谢谢你的关注,不过我问你一句,你调试到for i := 1 to MaxSize do这句没有?
根据你的回答,你肯定没有!
我调试过n遍,所以我才敢下结论,
如果大家知道来由的话,我觉得这个发现很有价值!
大家以后肯定会碰到此类问题!

Tense 2001-08-20
  • 打赏
  • 举报
回复
关注
jew 2001-08-20
  • 打赏
  • 举报
回复
关注
chechy 2001-08-20
  • 打赏
  • 举报
回复
大家都认为没错,就你觉得有错,难道...
chechy 2001-08-18
  • 打赏
  • 举报
回复
你关掉一个线程,再试试看。
chechy 2001-08-18
  • 打赏
  • 举报
回复
调试线程本来就比较困难,要知道你设的断点有可能是A线程断的,也有可能是B线程断的。
这样你才有可能发现I值不是递增。实际上对于一个线程来说I值一定是递增的。
这两个线程交替没有任何规律,完全随机,所以你每次调试都不太会得到相同结果。
deak 2001-08-18
  • 打赏
  • 举报
回复
?
deak 2001-08-18
  • 打赏
  • 举报
回复
真的没人知道?
deak 2001-08-18
  • 打赏
  • 举报
回复
to C_Sharp:这个我当然知道,但调试的时候为什么显示是递减呢?
to chechy:thank you,数字是随机的,但你有没有发现:

不知道各位调试的时候有没有发现:当执行 for i := 1 to MaxSize do这句时,i是从maxsize 到 1逐渐递减循环的,而且当执行 GlobalArray[MaxSize] := GetNextNumber时往往得出的是GlobalArray[1]的值,很奇怪,应该递增才对,why?
deak 2001-08-18
  • 打赏
  • 举报
回复
欢迎大家都来调试,源代码如下:
unit Main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TMainForm = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
private
procedure ThreadsDone(Sender: TObject);
end;

TFooThread = class(TThread)
protected
procedure Execute; override;
end;

var
MainForm: TMainForm;

implementation

{$R *.DFM}

const
MaxSize = 128;

var
NextNumber: Integer = 0;
DoneFlags: Integer = 0;
GlobalArray: array[1..MaxSize] of Integer;

function GetNextNumber: Integer;
begin
Result := NextNumber; // return global var
Inc(NextNumber); // inc global var
end;

procedure TFooThread.Execute;
var
i: Integer;
begin
OnTerminate := MainForm.ThreadsDone;
for i := 1 to MaxSize do
begin
GlobalArray[i] := GetNextNumber; // set array element
Sleep(5); // let thread intertwine
end;
end;

procedure TMainForm.ThreadsDone(Sender: TObject);
var
i: Integer;
begin
Inc(DoneFlags);
if DoneFlags = 2 then // make sure both threads finished
for i := 1 to MaxSize do
{ fill listbox with array contents }
Listbox1.Items.Add(IntToStr(GlobalArray[i]));
end;

procedure TMainForm.Button1Click(Sender: TObject);
begin
TFooThread.Create(False); // create threads
TFooThread.Create(False);
end;

end.

只需添加一个按钮,列表框
加载更多回复(7)
内容概要:本文围绕基于多面体最大内近似的电动汽车集群聚合及微电网经济调度展开研究,提出了一种面向大规模电动汽车集群的灵活资源聚合建模方法。该方法通过构建电动汽车充放电行为可行域的内近似模型,利用几何表征与数学优化手段将其等效为可参与电网互动的聚合资源,并集成至微电网经济调度框架,以提升系统运行的经济性与对可再生能源的消纳能力。研究系统阐述了内近似建模的理论基础、建模流程及其与调度优化模型的耦合机制,并通过Matlab代码实现了完整的仿真验证,充展示了该方法在降低运行成本、增强系统灵活性方面的有效性与应用潜力。; 适合人群:具备电力系统析、凸优化理论及Matlab编程基础的研究生、科研人员,以及从事新能源调度、电动汽车聚合、需求侧响应等领域的工程技术人员。; 使用场景及目标:①研究大规模电动汽车集群的灵活性资源聚合建模与可行性域刻画方法;②支撑微电网或主动配电网的经济调度与优化决策制定;③为高比例可再生能源接入的电力系统提供基于需求侧响应的解决方案;④为科研人员提供可复现的算法代码,支持进一步的创新与拓展研究。; 阅读建议:建议读者结合Matlab代码逐模块学习,重点理解多面体可行域的内近似构造逻辑与优化求解器的接口设计,同时可延伸学习外近似、列与约束生成(C&CG)算法等鲁棒优化技术,以深化对不确定性下电力系统优化问题的全面认知。
内容概要:本文是关于“永磁同步机全家桶”的综合性技术资源汇总,聚焦于永磁同步电机(PMSM)的全速域无传感器控制技术,系统涵盖了基于高频信号注入与自适应滑模观测器(SMO)的加权融合方法、混合观测器与加权切换策略等多种先进控制算法的仿真研究。文档深入剖析了从零速到高速各工况下观测器的设计原理,包括信号耦合机理、相位校正机制及平滑切换策略,并依托Simulink平台实现了完整的仿真实例,有效解决了传统机械传感器带来的成本高、可靠性差等问题,显著提升了电机控制系统的鲁棒性与动态精度。此外,该资源包还整合了智能优化算法、机器学习、电力系统优化、路径规划等多个科研方向的MATLAB/Simulink代码与论文复现案例,构建了一个面向科研与工程应用的完整技术生态体系。; 适合人群:具备一定电气工程、自动化或控制理论基础,从事电机控制、新能源系统、电力电子等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解永磁同步电机无传感器控制的核心算法原理与实现方式;②开展高性能电机控制系统的仿真验证与算法优化;③作为科研项目、毕业设计或学术论文复现的技术支撑材料,加速研究进程与成果转化。; 阅读建议:建议结合文提供的Simulink模型与Matlab代码同步实践,重点关注不同观测器在高低速切换时的动态响应与稳定性表现,同时可拓展学习文档关联的优化算法与系统建模技术,以构建完整的科研技术体系。

5,943

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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