我在linux中有一个命名管道,我想从python中读取它.问题是python进程'消耗'一个核心(100%)连续.我的代码如下:
FIFO = '/var/run/mypipe'
os.mkfifo(FIFO)
with open(FIFO) as fifo:
while True:
line = fifo.read()
Run Code Online (Sandbox Code Playgroud)
我想问一下'sleep'是否有助于这种情况或进程是否会从管道中丢失一些输入数据.我无法控制输入,所以我不知道数据输入的频率.我读了关于选择和民意调查,但我找不到任何关于我的问题的例子.最后,我想询问100%的使用量是否会对数据输入产生任何影响(丢失或什么?).
编辑:我不想打破循环.我希望流程能够持续运行,并且可以"听到"来自管道的数据.
我有一个 3000 行的 excel 文件。我删除了 2000(使用 ms excel 应用程序),但是当我从代码中调用 sheet.getLastRowNum() 时,它给了我 3000(而不是 1000)。如何删除空白行?
我从这里尝试了代码,但它不起作用......
我有3045的表格!组件(1015个标签,1015个文本字段,1015个组合框).所有这些都在JPanel和JScrollPane中的JPanel中.问题是滚动是"滞后".我的PC上有4GB RAM,所以我不认为这是问题所在.怎么了?在我的任务管理器中,应用程序使用~100mb.
我的代码:
final JScrollPane scrollPane_1 = new JScrollPane();
final JPanel panel = new JPanel();
panel.setLayout(null);
scrollPane_1.setViewportView(panel);
int y =0;
for(int i=0; i<1015;i++)
{
JLabel length = new JLabel();
length.setBounds(10, y, 350, 20);
length.setFont(new Font("Tahoma", Font.BOLD, 11));
length.setEnabled(false);
panel.add(length);
panel.revalidate();
JComboBox combo = new JComboBox();
combo.setModel(new DefaultComboBoxModel(new String[] {"=", "!="}));
combo.setBounds(10, y + 20, 70, 20);
panel.add(combo);
panel.revalidate();
JTextField text = new JTextField();
text.setBounds(10 + 80, y + 20, 200, 20);
panel.add(text);
panel.revalidate();
}
Run Code Online (Sandbox Code Playgroud)
编辑:我做了很多测试,我意识到只有当我使用组合框时才存在延迟,如果我使用例如文本字段而不是组合框,滚动是正常的...
我有一个后台工作者的应用程序.在doWork方法中,我执行html Web请求.如果此请求失败(例如错误404),我想在完成之前退出线程.所以在我的捕获中我添加了这段代码
worker.CancelAsync();
if (worker.CancellationPending)
{
e.Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)
问题是线程没有停止,但它创建了一个新的html Web请求.
一些代码:
try
{
var request = (HttpWebRequest)WebRequest.Create(url1);
request.Timeout = 5000;
request.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5";
var document = new HtmlAgilityPack.HtmlDocument();
try
{
using (var responseStream = request.GetResponse().GetResponseStream())
{
document.Load(responseStream, Encoding.UTF8);
//some lines of code to parse html
}
catch (WebException we){
worker.CancelAsync();
if (worker.CancellationPending)
{
e.Cancel = true;
return;
}
}
catch (Exception) { }
Run Code Online (Sandbox Code Playgroud)
这是我的工作方法......
我有一个字符串,其中包含YYYYMMDD格式的日期(例如20130614),我想将其转换为日期并打印出来:'Day Month Day Year'(例如2013年6月14日星期五).我尝试使用SimpleDateFormat执行此操作,但它返回日期和时间(我不想要时间)(例如,Eri Jun 14 00:00:00 EET 2013).
我的代码是:
String tmpValue = "20130614";
Date date = (Date) new SimpleDateFormat("yyyyMMdd").parse(tmpValue);
Run Code Online (Sandbox Code Playgroud)
此外,我想在打印后将其转换回YYYYMMDD格式的字符串.可能吗?
我有一个ListView(在WPF应用程序中),我以编程方式填写它:
l1.Items.Add(new
{
AA = aa++,
Description = descriptions[k],
Shop = names[k + 2],
Price = price
});
Run Code Online (Sandbox Code Playgroud)
我想取第一行和列价的价值.我可以拿走这个对象
object b = l1.Items.GetItemAt(0);
但我不能接受这个价格.
java ×3
c# ×2
wpf ×2
.net ×1
apache-poi ×1
date ×1
excel ×1
jscrollpane ×1
linux ×1
listview ×1
named-pipes ×1
performance ×1
python ×1
swing ×1