我有一个案例,我从服务器拉信息.我的应用程序有标签栏和导航按钮.我希望应用程序显示进度指示器并禁用所有其他控件,以便用户在从服务器提取数据时无法跳转.我怎样才能实现这一目标?
我想到的一种方法是显示带有进度窗口的透明视图(非常类似于消息警报窗口 - 它允许用户仅与消息警报窗口进行交互).我需要帮助来实现这种方法.
目前,当从服务器中提取信息/数据时,我将UIActivityView添加到子视图并开始为其设置动画.但这并不限制用户导航到应用程序的其他部分.
我想通过URLconnection检查下载文件的进度.是否可以或应该使用其他库?这是我的urlconnection函数:
public static String sendPostRequest(String httpURL, String data) throws UnsupportedEncodingException, MalformedURLException, IOException {
URL url = new URL(httpURL);
URLConnection conn = url.openConnection();
//conn.addRequestProperty("Content-Type", "text/html; charset=iso-8859-2");
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream(), "ISO-8859-2"));
String line, all = "";
while ((line = rd.readLine()) != null) {
all = all + line;
}
wr.close();
rd.close();
return all;
}
Run Code Online (Sandbox Code Playgroud)
我知道整个文件都是在这行(或worng)下载的?:
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream(), "ISO-8859-2"));
Run Code Online (Sandbox Code Playgroud)
那么可以在这段代码中执行此操作吗?
我正在使用进度条,使用ajax请求和会话变量更新进度.当我的程序执行耗时的操作,如发送许多电子邮件等时,它只是设置适当的会话变量(包含进度值).此操作由下面的代码中的函数post()启动.
同时,第二个函数ask()每500ms循环执行一次.它应该实时返回当前进度.这就是问题:ask()发送的每个请求都在等待post()函数发送的请求完成.有趣的是,如果我设置一些像google.com这样的URL而不是url/to/progress它可以正常工作,除非它不是我想要的:).这意味着问题出在服务器端.
不确定它是否重要,但我使用的是Yii Framework.
下面的所有代码只是划痕(但有效),其唯一目的是展示我的意思.
提前致谢.
抱歉我的英语不好:)
查看部分:
<script type="text/javascript">
function ask() {
var d = new Date();
var time = d.getTime();
$.ajax({
type: 'get',
url: '/url/to/progress' + '?time=' + time,
success: function(data) {
$("#progress").html(data);
}
})
}
function post() {
var d = new Date();
var time = d.getTime();
$.ajax({
type: 'post',
url: '/url/to/post' + '?time=' + time,
data: {"some": "data"},
success: function(data) {alert(data)}
});
}
$("#test").click(
function() {
post();
var progress = setInterval("ask();", 500);
}
);
</script>
Run Code Online (Sandbox Code Playgroud)
控制器部分: …
我的研究:
好的,我已经查看了几十个例子Write-Progress并观察了以下内容.大部分时间与循环结合使用,通常是"for"或"foreach".大多数示例不做任何事情,但计数为100.其他更有用的示例将执行某个命令,例如复制文件.没有示例包含整个脚本.
我的设置:
我有几个脚本(数千行代码)在某些时候相互调用.一个脚本控制或调用所有其他脚本.该脚本运行大约15分钟,在此期间我想提供状态使用Write-Progress.
我的问题:
在我的Write-Progress所有脚本执行时如何使用提供状态?基本上我想"包装" Write-Progress我的所有脚本或者是从单个脚本为多个被调用脚本提供状态的最佳方法.
最好的例子:
到目前为止,我见过的最好的用法是Update-Help在PowerShell V3中使用CmdLet.但由于我看不到Update-HelpCmdLet 的源代码,这对我没有帮助.
我正试图跟踪GOLANG的上传进度,这就是我现在所获得的
func Upload(w http.ResponseWriter, req *http.Request) {
mr, err := req.MultipartReader()
if err != nil {
return
}
for {
// var part *multipart.Part
part, err := mr.NextPart()
mr.partsRead
if err == io.EOF {
break
}
println(part)
}
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个在库中执行某个操作的类.但是操作很繁琐,我希望能够找到该类中方法的进度,以便我可以在WinForms应用程序中使用它来报告进度.
我打算在我的WinForms应用程序中的另一个线程上运行我的类,我希望该类与WinForms应用程序的关注点分开,我不想将它绑定到除了它之外的任何特定内容.
在库类中实现进度报告机制的最佳方法是什么?
以某种方式在类中有一个进度变量,并在我的WinForms应用程序中添加一个事件监听器是不是一个好主意?如果是的话,我该怎么办呢?
编辑:我之前使用过BackgroundWorker该类,但我的问题是我不希望我的库类与任何多线程操作有关.所以我不想ReportProgress在库类中调用,我想(可能)在包含当前进度的类中有一个变量,我希望UI线程以某种方式"订阅"它.我不知道这是否是设计它的好方法.
我正在尝试编写一个脚本,在执行任务时会显示忙碌指示.当任务结束时,进度条将填充到最后,表明100%任务已完成.我只是想让进度条显示正在进行的任务.但是当我开始任务时,忙碌指示停止.在我看来,指示和任务不能一起继续.请帮我.这是我的代码:
from PyQt4 import QtCore, QtGui
from time import sleep
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(344, 159)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.pb = QtGui.QProgressBar(self.centralwidget)
self.pb.setGeometry(QtCore.QRect(20, 20, 301, 31))
self.pb.setProperty("value", 0)
self.pb.setObjectName(_fromUtf8("pb"))
self.btn = QtGui.QPushButton(self.centralwidget)
self.btn.setGeometry(QtCore.QRect(20, 70, 98, 27))
self.btn.setObjectName(_fromUtf8("btn"))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 344, …Run Code Online (Sandbox Code Playgroud) 首先,这个项目是使用Swift构建的.
我想创建一个自定义进度指示器,在脚本运行时"填满".该脚本将调用从远程服务器提取的JSON提要.
为了更好地想象我追求的是什么,我做了这个:

我的猜测是有两个PNG图像; 一个白色和一个红色,然后根据进度量简单地做一些掩蔽.
有什么想法吗?
我正在使用Xamarin PCL为Android和iOS创建文件上传应用程序,我已设法实现文件上传和某种进度条,但它无法正常工作.
我看到堆栈溢出的一些答案用于显示下载进度,但我想通知我的用户有关上传进度的信息,但没有找到任何解决方案.
这是我的代码:
public static async Task<string> PostFileAsync (Stream filestream, string filename, int filesize) {
var progress = new System.Net.Http.Handlers.ProgressMessageHandler ();
//Progress tracking
progress.HttpSendProgress += (object sender, System.Net.Http.Handlers.HttpProgressEventArgs e) => {
int progressPercentage = (int)(e.BytesTransferred*100/filesize);
//Raise an event that is used to update the UI
UploadProgressMade(sender, new System.Net.Http.Handlers.HttpProgressEventArgs(progressPercentage, null, e.BytesTransferred, null));
};
using (var client = HttpClientFactory.Create(progress)) {
using (var content = new MultipartFormDataContent ("------" + DateTime.Now.Ticks.ToString ("x"))) {
content.Add (new StreamContent (filestream), "Filedata", filename);
using (var …Run Code Online (Sandbox Code Playgroud) 我在Android上使用exoplayer.我需要在视频搜索时显示进度指示器.我可以开始在seekTo方法上显示进度指示器,但是当搜索完成时我应该使用哪种回调方法来隐藏进度指示器.