我从kotlin示例中获取了这个简单的代码片段:
fun main(args: Array<String>) = runBlocking<Unit> {
withTimeout(1300L) {
repeat(1000) { i ->
println("I'm sleeping $i ...")
delay(500L)
}
}
}
当我尝试运行它时,它会抛出
java.lang.NoSuchMethodError: kotlinx.coroutines.experimental.ScheduledKt.withTimeout$default(JLjava/util/concurrent/TimeUnit;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Ljava/lang/Object;
我使用 kotlinVersion =&#39; 1.1.51&#39;
有什么建议吗?
答案 0 :(得分:1)
在您的情况下,请确保在build.gradle文件中启用协同程序:
add <cc1:ToolkitScriptManager></cc1:ToolkitScriptManager> instead of <asp:ScriptManager></asp:ScriptManager>
your aspx page ----
<cc1:ToolkitScriptManager ID="ScriptManager1" runat="server"
EnablePageMethods = "true">
</cc1:ToolkitScriptManager>
<asp:TextBox ID="txtContactsSearch" runat="server"></asp:TextBox>
<cc1:AutoCompleteExtender ServiceMethod="SearchCustomers" MinimumPrefixLength="1" CompletionInterval="10"
EnableCaching="false" CompletionSetCount="10" TargetControlID="txtContactsSearch" ID="AutoCompleteExtender2"
runat="server" FirstRowSelected="false"></cc1:AutoCompleteExtender>
your cs page----
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> SearchCustomers(string prefixText, int count)
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager
.ConnectionStrings["conio"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select clientID from clientsDetails where "+"clientID like @SearchText + '%'";
cmd.Parameters.AddWithValue("@SearchText", prefixText);
cmd.Connection = conn;
conn.Open();
List<string> customers = new List<string>();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
customers.Add(sdr["name"].ToString());
}
}
conn.Close();
return customers;
}
}
}
此外,您应该使用启动(UI)触发协程,并显式调用wait()和挂起的方法。其余的代码将在UI线程上执行。
希望它解决了你的问题!