我正在使用System.Diagnostics.Process该类来执行命令行程序.
我正在使用该OutputDataReceived方法将输出重定向到我自己的方法.
pr.OutputDataReceived += new DataReceivedEventHandler(OnDataReceived);
pr.ErrorDataReceived += new DataReceivedEventHandler(OnDataReceived);
Run Code Online (Sandbox Code Playgroud)
但是,我有多个线程运行此cmd程序的多个实例.我想要做的是能够识别输出数据来自哪个流程实例 - 理想情况下,包含名称的字符串.(每个进程在GUI上都有自己的进度条.我创建了另一个事件来将输出传递给GUI,因此,我需要知道数据来自哪个进程来更新其进度条).
我开始尝试:
public override delegate void DataReceivedEventHandler(object sender, DataReceivedEventArgs e, string processName);
Run Code Online (Sandbox Code Playgroud)
然后我意识到我必须覆盖OutputDataReceivedProcess类中的方法.这反过来意味着我必须创建一个继承的自定义类System.Diagnostics.Process,并且有一个接受字符串参数的方法,以便OutputDataReceived事件可以将流程实例名称(字符串)传递给我的重写DataReceivedEventHandler.
问题的目的是获得关于如何进行的一些意见.我的建议似乎是实现我想要的正确方法吗?或者,有更好的方法吗?
我有以下场景:
例如:
Video1:
Stream1:
format mpeg
bitrate 700kb/s
resolution 1024x764
Stream2:
format mpeg
bitrate 600kb/s
resolution 800x600
Video2:
Stream1:
format mpeg
bitrate 700kb/s
resolution 1024x764
Stream2:
format mpeg
bitrate 600kb/s
resolution 800x600
Run Code Online (Sandbox Code Playgroud)
这是我考虑将数据保存在:
QVector<QVector<QStringList>>
Run Code Online (Sandbox Code Playgroud)
QStringList值对在哪里(格式,mpeg).
Inside QVector保存了流的多对.
外部QVector保存所有内容,即每个条目/索引是单个视频文件的数据.
我不确定这是否是保存数据的最佳方式我认为集合内的集合内的集合不会非常有效.
对替代品的任何意见?
我一直在搜索并尝试使用wput.exe来上传整个文件夹及其子文件夹.我被告知Wput可以做到这一点.我尝试过以下方法:
wput C:\ upload\ ftp:// user:password@172.29.200.158/Transfer/
有任何想法吗?
我有以下枚举:
public enum BikeType : byte
{
Road = 0,
Mountain = 1
};
Run Code Online (Sandbox Code Playgroud)
当我尝试将它传递给我时,我检索字节的'字符串'表示,而不是数字值:
string str = string.Format("Road bike has a byte value of {0}", BikeType.Road);
"Road bike has a byte value of Road"
Run Code Online (Sandbox Code Playgroud)
我想要字节值(0).我究竟做错了什么?
谢谢
从转换时我得到一个意外的DateTime:
(UTC) Dublin, Edinburgh, Lisbon, London 至 (UTC-08:00) Baja California
以下是我一直在使用的代码.我期待serverDateTime成为29/03/2016 00:00:01(-8小时),而是我得到28/03/2016 23:00:01-这是一个9小时的时差.
private static void Main(string[] args)
{
ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
TimeZoneInfo localTimeZone = timeZones.FirstOrDefault(tz => tz.DisplayName.Contains("London"));
TimeZoneInfo serverTimeZone = timeZones.FirstOrDefault(tz => tz.DisplayName.Contains("California"));
DateTime clientDateTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 29, 8, 0, 1);
DateTime serverDateTime = TimeZoneInfo.ConvertTime(clientDateTime, localTimeZone, serverTimeZone);
}
Run Code Online (Sandbox Code Playgroud)
我的本地机器在英国,目前是UTC + 1,而Baja - California目前是UTC-7,所以我希望得到8小时的差异,而不是9.我做错了什么?
提前致谢.
为什么以下不起作用?这样投不可能吗?
我收到错误: java.lang.ClassCastException: java.io.File cannot be cast to MyMusicFile
public class MyMusicFile extends java.io.File
{
public MyMusicFile(String pathname)
{
super(pathname);
}
public String artist;
public String album;
public String track;
public String year;
}
main(String[] args)
{
File file = new File("/home/1.txt");
MyMusicFile mmf = (MyMusicFile) file;
}
Run Code Online (Sandbox Code Playgroud) 我有一个相对简单的程序,目前使用1个线程(主).该应用程序大约需要30分钟才能完成.但是,根据任务经理的说法,它只使用了25%的处理能力.它似乎分布在我的处理器的4核上.
有没有办法让'JVM'使用更多资源?
还有很多读写文件.这可能是一个瓶颈,因此只有25%的处理资源被使用?
谢谢
c# ×3
java ×2
c++ ×1
collections ×1
datetime ×1
enums ×1
events ×1
ftp ×1
inheritance ×1
overriding ×1
process ×1
qt ×1
timezone ×1