这个问题让我抓狂.我想念一些关于如何在活动中创建的新线程中处理长操作以及如何在长时间操作完成后修改视图组件(如文本等)的基本但非常重要的知识.
让我首先向您展示我的代码中发生此问题的部分:
mProgressDialog = ProgressDialog.show(mContext, "Tripplanner", "please wait...", true, false);
connectAndGetRoute();
private void connectAndGetRoute(){
new Thread(){
@Override
public void run() {
try {
if(!connectTo9292ov()) return;// conncetto9292ov() connects to a website, parses the reasult into an arraylist. The arraylist contains route.
} catch(UnknownHostException e){
Toast.makeText(mContext, "failed to connect to server", Toast.LENGTH_LONG).show();
}catch (ClientProtocolException e) {
Toast.makeText(mContext, "failed to connect to server", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Toast.makeText(mContext, "failed to connect to server", Toast.LENGTH_LONG).show();
}
handler.post(runConnection);
}
}.start();
handler = new …Run Code Online (Sandbox Code Playgroud) 这是在unix中使用的pipe fork exec三重奏的简单演示.
#include <stdio.h>
#include <sys/fcntl.h>
#include <unistd.h>
#include <sys/types.h>
int main()
{
int outfd[2];
if(pipe(outfd)!=0)
{
exit(1);
}
pid_t pid = fork();
if(pid == 0)
{
//child
close(outfd[0]);
dup2(outfd[1], fileno(stdout));
char *argv[]={"ls",NULL};
execvp(argv[0], (char *const *)argv);
throw;
}
if(pid < 0)
{
exit(1);
}
else
{
//parrent
close(outfd[1]);
dup2(outfd[0], fileno(stdin));
FILE *fin = fdopen(outfd[0], "rt");
char *buffer[2500];
while(fgets(buffer, 2500, fin)!=0)
{
//do something with buffer
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在我想在Windows中使用WinAPI编写相同的内容.我应该使用哪些功能?有任何想法吗?
我为我的对象定义了一个可变属性
object myobject{
val myMap = mutable.Map[String,mutable.Set[String]]
def clear {// I don't know what code I must write here for remove all key Values on myMap}
def add(keyValue:(String,String)){//some code for add a keyValue to mymap}
}
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试将DataGrid.ItemsSource绑定到自定义RowCollection,它实现了IList和INotifyCollectionChanged:
Public Class RowCollection(of T)
Implements IList(Of T)
Implements INotifyCollectionChanged
Private _List As New List(Of T)
...
(对不起VB代码,我很快就会将所有代码翻译成C#.)
请注意,该类不是从任何现有的CLR集合派生的.我创建了自己的类,因为我需要覆盖GetItemAt,以实现记录分页.Collection内部添加和删除其自己的私有List中的对象_List.
现在,我可以在DataGrid中查看项目,但只要双击要编辑的单元格,我就会收到InvalidOperationException:'EditItems'不可用..
我的问题是,为了使我的集合与DataGrid完全兼容,我应该实现哪些其他接口?
我正在学习如何使用Ruby on Rails中的cookie.我所知道的是如何设置cookie的名称和值,但我想存储多达三个字段.所以任何提示或好的教程将不胜感激!
谢谢你的帮助.
我正在读一本关于Java的书,它说你可以把全班宣布为final.我想不出任何我会用它的地方.
我刚接触编程,我想知道程序员是否真的在他们的程序中使用它.如果他们这样做,他们何时使用它,以便我能更好地理解它并知道何时使用它.
如果Java是面向对象的,并且你声明了一个类final,那么它是否会阻止具有对象特征的类的想法?
我有2个关于PDFBox库(JAVA)的问题:
我刚刚开始使用PDFBox库,虽然它运行良好,但我还是不禁注意到它在使用ut.mergeDocuments()方法(对ITEXT的concat_pdf.main(..))时运行速度比ITEXT(我使用的其他pdf库)慢.有没有人知道我是否可以/如何提高这个工具的性能?
我看到PDFBox对加密文件更敏感.ITEXT允许我对加密的PDF进行合并,但PDFBox正在抛出一个异常,说明:
"PDFBoxConcat failedjava.io.IOException:错误:目标PDF已加密,无法附加加密的PDF文档."
有没有人知道它如何在ITEXT上运行而不在PDFBox上运行?
我的猜测是,ITEXT更精确地知道什么是加密的并允许采取行动,而PDFBox只是检查它是否加密.
谁能为我证实这一点?
我有这个代码(开源)的pfdBox mergeDocuments(),你可以看到检查加密的方法:
if( destination.isEncrypted() )
{
throw new IOException( "Error: destination PDF is encrypted, can't append encrypted PDF documents." );
}
Run Code Online (Sandbox Code Playgroud)
我试着把它放在评论上,但合并后的文件却是胡言乱语.
只是添加了一些我尝试提高性能的代码示例.
这些是我尝试这样做的3种不同方式:
private static void PDFBoxConcat(String filePath) {
PDFMergerUtility ut = new PDFMergerUtility();
for (int i = 0; i < 50; i++) {
ut.addSource(filePath);
}
ut.setDestinationFileName("C:\\amdocs\\sensis\\dlv858\\pdfBox" + testNum + ".pdf");
try {
ut.mergeDocuments();
} catch (Exception e) {
System.out.println("PDFBoxConcat failed");
e.printStackTrace();
}
}
private static void PDFBoxConcat2(String …Run Code Online (Sandbox Code Playgroud) 我正在开发一个需要连续拍摄两张照片的应用.我目前正在使用iPhone相机,但是:
我该怎么办 ?我应该自己制作相机吗?我找不到一个只有"拍照"按钮的自定义相机的简单教程......
我知道如果我不使用名为_id的字段作为我在Android中的主键,那些像CursorAdapter这样的东西将不起作用,但_id列是否需要是一个自动增量int?我可以使用Guid作为键,只要它被称为_id,并且CursorAdapter仍然有效吗?
这真的很烦我,我试过找一个解决方案,但无济于事.在我的网站的标题中,您可以看到搜索栏位于徽标下方,我只想在标题的最右侧.这似乎是一个简单的修复,但我无法解决这个问题.
这是HTML
<div id="header">
<div id="logo">
<a href="http://www.otherwords.info/index.php"><img src="images/otherwordslogo.jpg" /></a>
</div>
<div id="search">
<span>
<form method="post" action="search.php?op=Search" id="form">
<input type="text" value="Search Phrase" onfocus="if(this.value == 'Search Phrase'){this.value = '';}" size="40" name="q">
<input type="submit" value="Search" name="submit">
</form>
</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是CSS
#search { float:left;}
#logo { float:left; }
div#header {
vertical-align:top;
width:100%
clear: both;
height: 150px;
background-color: aqua;
padding: 1px;
}
Run Code Online (Sandbox Code Playgroud)