在C#中的客户端编程中,我需要读取项目的一个文件的,该怎么读取?
答案:2 悬赏:70 手机版
解决时间 2021-02-09 01:57
- 提问者网友:不爱我么
- 2021-02-08 05:10
C#的客户端程序有没有和ASP.NET网站程序一样,有一个像Server.MapPath("/Image/a.jpg")这个方法一样获取项目路径?
最佳答案
- 五星知识达人网友:等灯
- 2021-02-08 06:43
// 获取程序的基目录。
System.AppDomain.CurrentDomain.BaseDirectory
// 获取模块的完整路径。
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
// 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
System.Environment.CurrentDirectory
// 获取应用程序的当前工作目录。
System.IO.Directory.GetCurrentDirectory()
// 获取和设置包括该应用程序的目录的名称。
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
// 获取启动了应用程序的可执行文件的路径。
System.Windows.Forms.Application.StartupPath
// 获取启动了应用程序的可执行文件的路径及文件名
System.Windows.Forms.Application.ExecutablePath
看哪个适合你,选一个
System.AppDomain.CurrentDomain.BaseDirectory
// 获取模块的完整路径。
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
// 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
System.Environment.CurrentDirectory
// 获取应用程序的当前工作目录。
System.IO.Directory.GetCurrentDirectory()
// 获取和设置包括该应用程序的目录的名称。
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
// 获取启动了应用程序的可执行文件的路径。
System.Windows.Forms.Application.StartupPath
// 获取启动了应用程序的可执行文件的路径及文件名
System.Windows.Forms.Application.ExecutablePath
看哪个适合你,选一个
全部回答
- 1楼网友:荒野風
- 2021-02-08 07:32
原来是双线程访问同一资源的问题,我理解错了:(
由于sockect本身是独占资源,并不支持双工(发送的时候不能接收,接受的时候不能发送)。所以我们需要为着两个线程进行排队,然后依次调度来进行访问。这里有三个角色,调度器,发送线程,接受线程
调度器:
负责按照指定的策略调度两个线程的访问,比如交替进行;记录状态,异常等信息。最基本的情况下,对外提供两个方法,如果支持异步的话还需要上面两方法的异步版和两个事件:void send(byte[] content),负责发送数据;byte[] recieve(),负责接收数据;event recievecomplete,表示接收完成;event sendcomplete表示发送完成。调度器把发送和接收请求分别放入队列,依次执行就可以了。这部分异步逻辑还是比较简单的,看楼主的技术水平应该可以搞定,我就不班门弄斧了。
发送线程:
调用调度器的send方法
接受线程:
调用调度器的recieve方法
简单的说,就是把并行操作变成串行,这样就不会有冲突发生了!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |