- Thread myThread = new Thread(new ThreadStart(delegate { myThreadAction(Param1, Param2, Param3); }));
- myThread.Start();
很简单吧
今天是3/18,这算是补上之前没写的.
地下室装修,通常的步骤是管道-->电线-->室内装修.所以管道施工(PLUMBING)是第一道步骤.
管道施工分为上水管和下水管,上水管就是冷热水管,下水管就是排水系统.在装修之前,我就想象过管道应该怎么安装,因为在预留的卫生间地表,除了一个马桶下水口外看不到浴缸和台盆的下水口.后来在报申请时才被告知说那个铁皮下面应该是浴缸的下水口.这样就省了我不少的心思,原来以为没有浴缸下水口时,甚至打算租一台混凝土切割机来自己排下水管的.
图:地下室的铁皮盖,网上问过别人,都不知道这会是什么.

正方的铁皮盖四边都有个折弯的小铁片压着用以固定,用螺丝刀撬开后很容易地移走铁片,却发现这下面是一堆乱七八糟的水泥块,下方是黄沙和石子,居然就没看到什么预留的管道,难道是场空欢喜?

不经意间才发现,原来那一堆水泥下面居然就是一个预留管道口!还记得我这次换的压缩机带的电凿么,正好用在这个地方,很轻松地,就把那些水泥击碎清除,用起来的确比较顺手.下图后方可见清除水泥块后露出的管道口.

HUSKY 13GAL压缩机:

还有些工作要做的,等补拍了照片再表.
1. 先根据DDWRT官网上的方法,用30-30-30方式RESET路由器后刷DDWRT,但都报错说文件非法,奇怪,再用LINKSYS的界面升级DD-WRT MINI. 先想升级DD-WRT的STD,但是说不行,升级FAILED. 所以只能用MINI进行升级, UPLOAD SUCCESSFUL以后,过了很久网页变为不可用,等3分钟.
2. 再开机,发现糟糕.LED灯只有连接的3号网口亮,连POWER灯都灭了.计算机PING 192.168.1.1不通,改计算机IP地址为192.168.1.100后PING也不通.机器变砖...哭...
3. 用30-30-30方式RESET路由器,还好这界面还是有的.去LINKSYS官网下载了原厂固件,用此界面刷入.成功.还好,机器回生了.
4. 仔细查看后发现,原来刷入的DDWRT是给V1版的WRT310N的,应该是这个原因导致的失败,继续下载最新版的DDWRT,注意是要给V2版用的,最新的是2011年2月编译的SP2版,用FTP可以在DDWRT官网下载到.
5. 在LINKSYS的界面中刷DDWRT,继续出失败消息"FAILED""FAILED"...下载了老的SP1稳定版也是一样失败.用30-30-30 RESET路由器后刷,报错不是合法的IMAGE.刷DDWRT不成功.郁闷.
6. 停止使用IE,改用CHROME打开LINKSYS界面刷DDWRT,用SP2的最新编译的MINI版...成功了!
7. 想偷懒把原来WRT54GL中的配置文件导出再导入到WRT310N中,结果又一次导致机器变砖.看来只能自己手动配置了.
8. 再用30-30-30方式后直接用CHROME刷DDWRT,也成功了.然后手动配置路由器,累是累点,没办法.
重新设好网络,用T410测试速度(SPEEDTEST.NET),达到20M!很不错,下面就要花时间看WRT310N的稳定性了.
3/17,在EBAY上买了个INTEL 5100的N速网卡,准备给老机I6400换上提速.
看起来,在LINUX平台上,IE还是问题多多,这不,费了那么多事,换成CHROME就可以.我没试FIREFOX,估计那也成.
- { Getting the Windows Directory }
- function GetWinDir: string;
- var
- dir: array [0..MAX_PATH] of Char;
- begin
- GetWindowsDirectory(dir, MAX_PATH);
- Result := StrPas(dir);
- end;
- function WindowsDirectory: string;
- var
- WinDir: PChar;
- begin
- WinDir := StrAlloc(MAX_PATH);
- GetWindowsDirectory(WinDir, MAX_PATH);
- Result := string(WinDir);
- if Result[Length(Result)] <> '\' then
- Result := Result + '\';
- StrDispose(WinDir);
- end;
- function GetWindowsDirectory(var S: String): Boolean;
- var
- Len: Integer;
- begin
- Len := Windows.GetWindowsDirectory(nil, 0);
- if Len > 0 then
- begin
- SetLength(S, Len);
- Len := Windows.GetWindowsDirectory(PChar(S), Len);
- SetLength(S, Len);
- Result := Len > 0;
- end else
- Result := False;
- end;
- { Getting the System Directory }
- function SystemDir: string;
- var
- dir: array [0..MAX_PATH] of Char;
- begin
- GetSystemDirectory(dir, MAX_PATH);
- Result := StrPas(dir);
- end;
- function SystemDirectory: string;
- var
- SysDir: PChar;
- begin
- SysDir := StrAlloc(MAX_PATH);
- GetSystemDirectory(SysDir, MAX_PATH);
- Result := string(SysDir);
- if Result[Length(Result)] <> '\' then
- Result := Result + '\';
- StrDispose(SysDir);
- end;
- function GetSystemDirectory(var S: String): Boolean;
- var
- Len: Integer;
- begin
- Len := Windows.GetSystemDirectory(nil, 0);
- if Len > 0 then
- begin
- SetLength(S, Len);
- Len := Windows.GetSystemDirectory(PChar(S), Len);
- SetLength(S, Len);
- Result := Len > 0;
- end else
- Result := False;
- end;
- { Getting the Temporary Directory }
- function GetTempDir: string;
- var
- Buffer: array[0..MAX_PATH] of Char;
- begin
- GetTempPath(SizeOf(Buffer) - 1, Buffer);
- Result := StrPas(Buffer);
- end;
- function GetTempPath: string;
- var
- TmpDir: PChar;
- begin
- TmpDir := StrAlloc(MAX_PATH);
- GetTempPath(TmpDir, MAX_PATH);
- Result := string(TmpDir);
- if Result[Length(Result)] <> '\' then
- Result := Result + '\';
- StrDispose(TmpDir);
- end;
- function GetTempPath(var S: String): Boolean;
- var
- Len: Integer;
- begin
- Len := Windows.GetTempPath(0, nil);
- if Len > 0 then
- begin
- SetLength(S, Len);
- Len := Windows.GetTempPath(Len, PChar(S));
- SetLength(S, Len);
- Result := Len > 0;
- end else
- Result := False;
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- label1.Caption := GetWinDir;
- label2.Caption := GetSysDir;
- label3.Caption := GetTempDir;
- end;
这程序在我这儿一切都运行得好好地,但是一换到DOUG那儿就有问题.迟迟解决不了.原来的程序没写LOG,现在加上去了一看才知道,原来是GB的时间格式和我这儿不一样,原来用的DATETIME.PARSE在他那儿就过不去了.
改成用ParseExact加上格式限制就好了,代码如下:
- DateTime.ParseExact("12/30/1899","M/d/yyyy",null);
程序里有好几处类似的地方,要注意全部改到.
另外增加了LOG类,用来输出日志消息.





