No se puede descartar ProgressDialog después de completar AsyncTask

Por favor, ayuda, no puedo descartar ProgressDialog después de completar AsyncTask. Busqué la respuesta pero no encontré nada. Este código funciona bien cuando uso Thread en lugar de AsyncTask. ¿Tienes alguna idea?

Context appContext;
ProgressDialog pd;

@Override
public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
   appContext=this;
   MyTask myTask=new MyTask(); 
   myTask.execute();
}


class MyTask extends AsyncTask<Void, Void, Void>
{
   @Override
   protected void onPreExecute() 
   {
      pd = ProgressDialog.show(appContext, "Wait..", "Loading data",
                    true, false);
  pd.setCancelable(false);
      super.onPreExecute();
   }

   @Override
   protected Void doInBackground(Void... arg0)
   {
  //something
  return null;
    }

   @Override
   protected void onPostExecute(Void result)
   {
      if (pd!=null)
        pd.dismiss();
  super.onPostExecute(result);
   }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta